Как подключить мой контроллер в моей директиве для вставки данных и добавления начальной загрузки select в angular.js?

Я пытаюсь добавить данные в мое меню выбора, используя контроллер и используя ng-options, в то время как у меня есть класс, определенный в моей директиве, чтобы вставить плагин bootstrap-select в элемент. Проблема в том, что данные в моем контроллере не работают, они конфликтуют с моей директивой, и я даже попытался использовать метод require и controller в моей директиве.

Пожалуйста, посмотрите на мой код:

HTML

<div ng-controller="CitiesController" class="form-group pull-left form-register-width-field form-register-select">
   <label for="city">City</label>
   <select id="city" ng-model="selectedItem" ng-options="item as item.name for item in cities" class="selectpicker">
     <option>Select City</option>
  </select>
</div>  

Мой контроллер:

function CitiesController($scope) {
  console.log('cities controller'); 
  $scope.cities = [
    {value:'1',name:'Angeles'},
    {value:'2',name:'Angono'},
    {value:'3',name:'Antipolo'},
    {value:'4',name:'Apalit'},
    {value:'5',name:'Arayat'},
    {value:'6',name:'Bacolod'},
    {value:'7',name:'Bacoor'}
   ];
  console.log($scope.cities[2]);
 }

Моя директива:

angular.module('myApp.directives', [])
.directive('selectpicker', function() {
   return {
     restrict: 'C',
     link: function(scope,el,attr,cntr) {
       $(el).selectpicker();
     }
   }
})

Спасибо за помощь:)

2 ответа

Попробуйте добавить контроллер в вашу директиву, как ths;

angular.module('myApp.directives', [])
.directive('selectpicker', function() {
   return {
     restrict: 'C',
     controller: function($scope){
       $scope.cities = [
         {value:'1',name:'Angeles'},
         {value:'2',name:'Angono'},
         {value:'3',name:'Antipolo'},
         {value:'4',name:'Apalit'},
         {value:'5',name:'Arayat'},
         {value:'6',name:'Bacolod'},
         {value:'7',name:'Bacoor'}
       ];
     },
     link: function(scope,el,attr,cntr) {
       $(el).selectpicker();
     }
   }
});

Угловой ремешок обеспечивает директиву для того же самого "bsSelect" ниже URL:

http://mgcrea.github.io/angular-strap/