2015-03-30 6 views
0

У меня есть selectize-нг меню:Предварительно заполнить меню выбора?

<input type="text" selectize="usersSelect.options" options="users" ng-model="users.selected" /> 

"пользователи" мой массив объектов. Это меню прекрасно работает, я могу выбрать из меню, ввести тип и получить токены. Мои параметры контроллера являются:

$scope.usersSelect = { 
options: { 
    valueField: 'full_name', 
    labelField: 'full_name', 
    searchField: ['full_name'], 
    plugins: ['remove_button'] 
} 
}; 

Только теперь у меня есть еще один массив из 6 «FULL_NAME» строк мне нужно быть в меню на старте. Я не могу найти никаких документов о том, как предварительно заполнять эти меню. Я использую Angular 1.3.

+0

Не можете просто определить по умолчанию в users.selected? –

+0

как? я попробовал пару вещей, возможно, это не так. – Steve

ответ

2

Вы можете установить значения для вашей модели:

<!doctype html> 
 
<html> 
 
    <head> 
 
     <script src="https://code.jquery.com/jquery-2.1.0.min.js"></script> 
 
     <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.14/angular.js"></script> 
 
     <script type="text/javascript" src="https://raw.githubusercontent.com/brianreavis/selectize.js/master/dist/js/standalone/selectize.min.js"></script> 
 
     <script type="text/javascript" src="https://raw.githubusercontent.com/kbanman/selectize-ng/master/dist/selectize-ng.js"></script> 
 
    </head> 
 
    <body data-ng-app="app" data-ng-controller="MainController"> 
 
     <input type="text" selectize="config" options="suggestions" ng-model="selected"/> 
 

 
     <script> 
 
      var app = angular.module('app', ['selectize-ng']); 
 
      app.controller("MainController", function($scope, $timeout) { 
 
       $scope.config = {valueField: 'value', 
 
        labelField: 'text'}; 
 
       $scope.suggestions = [{ value: 1, text: 'One' }, 
 
        { value: 2, text: 'Two' }, 
 
        { value: 3, text: 'Three' }, 
 
        { value: 4, text: 'Four' }]; 
 
       $scope.selected = [$scope.suggestions[0]['value'], $scope.suggestions[3]['value']]; 
 
      }); 
 
     </script> 
 
    </body> 
 
</html>

+0

Дубликат вашего вопроса на http://stackoverflow.com/questions/29309433/display-pre-selected-items-in-angular-selectize-menu Также вы должны принять ответ. – PhiLho

+0

Это не сработало для меня, хотя это и поставило меня на правильный путь. См. Мой ответ. – Steve

0

Глядя на другом ответ, публикуемом дал мне идею о присвоении массива выбраны, но синтаксис в этом ответе дал мне ошибки как в исполнении, так и в JSHINT.

Итак, я экспериментировал, пока я не получил это:

_this.roleMenu = { 
    config: { 
     valueField: 'name', 
     labelField: 'name', 
     plugins: ['remove_button'] 
    }, 
    suggestions: _this.roles, 
    selected: [] 
    }; 

    _this.roleMenu.selected = [ 
    _this.roleMenu.suggestions[2].name 
    ]; 

Для этого меню в HTML:

<select selectize="invite.roleMenu.config" options="invite.roleMenu.suggestions" ng-model="invite.roleMenu.selected" /> 

Это предполагает мою страницу контроллера быть InviteController as invite

Смежные вопросы