2013-08-14 1 views
1

Официальный пример Angular-щ тегов ВЫБ.2 является:радиально-UI Выбор2 динамически изменять атрибут теги в настройках

myAppModule.controller('MyController', function($scope) { 
    $scope.list_of_string = ['tag1', 'tag2'] 
    $scope.select2Options = { 
     'multiple': true, 
     'simple_tags': true, 
     'tags': ['tag1', 'tag2', 'tag3', 'tag4'] // Can be empty list. 
    }; 
}); 

И у меня есть этот кусок кода:

$scope.select2Options = { 
         'multiple': true, 
         'simple_tags': true, 
         'tags': $scope.categoryNames 
        }; 

$scope.$watch(function() { return adminCrudService.getCategoriesForUpdate(); }, function() { 
       $scope.action = "edit"; 
       $scope.categoriesForUpdate = adminCrudService.getCategoriesForUpdate(); 
       if ($scope.categoriesForUpdate.length > null) { 
        $scope.categoryNames = []; 
        _.forEach($scope.categoriesForUpdate, function (item) { 
         $scope.categoryNames.push(item._backingStore.Name); 
        }); 

       } 
      }); 

Но это только Безразлично» t, когда я нажимаю на Selcet2, я получаю Не найдено ни одного совпадения и я зарегистрировал $ scope.categoryNames внутри $ watch, и данные есть (так что часть работает нормально).

Так что мой вопрос может теги загружаться динамически, и если да, то как?

ответ

0

Ну, я не мог заставить его работать, поэтому я решил использовать Chosen вместо этого, следуя этому замечательному учебнику: link, и я получил результат, который я хотел в незапамятные сроки.

9

Я недавно столкнулся с этой проблемой при использовании проекта AngularUI Select2 и решил его, сделав аргумент тегов функцией, возвращающей модель. Например:

$scope.select2Options = { 
    multiple: true, 
    simple_tags: true, 
    tags: function() { 
    return $scope.categoryNames; 
    } 
}; 

Любые обновления к $scope.categoryNames находит свое отражение в представлении, поскольку Выбор2 вызывает функцию tags при открытии и на каждом нажатии кнопки.

Надеюсь, это полезно людям, которые хотят использовать Select2, а не Chosen.