Добавить новую опцию для ui-select2 в угловых JS

Я использую ui-select2 в angularjs, который использует плагин select2 из jquery. У меня есть некоторый предопределенный список, и затем, когда я начинаю искать что-либо, и если это не найдено в списке, я хочу добавить новое значение. Я делаю что-то вроде этого:

var selectOptions = {
    formatNoMatches: function(term) {
                return "<a ng-click=\"addCountry('abc');\">Add new country</a>";
            }
 };

 $scope.addCountry = function(countryName) {
    console.log (' test');
 };

Но щелчок не работает, и консоль в addCountry никогда не печатается. Любая идея, как добавить новую опцию для ui-select2 в угловой JS?

1 ответ

Я сделал это, не с помощью клика, а позволив пользователю просто ввести то, что ему нравится, в select2 и нажать Enter:

<input type="text" ui-select2="selectOpts" ng-model="selected"/>

В coffeescript, но я надеюсь, что вы поняли:

  $scope.selectOpts =
    maximumSelectionSize: 1
    data: $scope.someListOfData
    tags: true
    multiple: false
    createSearchChoice: (term) ->
      {id: term, text: term}

Я надеюсь, что это ставит вас на правильный путь, основная вещь состоит в том, чтобы установить "теги: правда"

Помещает Select2 в режим "tagging", где пользователь может добавлять новые варианты, а ранее существующие теги предоставляются через этот атрибут параметров, который либо

и создать SearchChoice (для этого поищите в http://ivaynberg.github.io/select2/):

Создает новый выбор по запросу пользователя. Позволяет создавать варианты, недоступные через функцию запроса. Полезно, когда пользователь может создавать варианты "на лету", например, для "использования тегов"

Другие вопросы по тегам