2014-09-19 5 views
12

Я пытаюсь добиться чего-то очень простого:нг-модель не получает изменилась в UI-выбери

<ui-select multiple ng-model="company.stack" theme="bootstrap"> 
    <ui-select-match>{$$item.name$}</ui-select-match> 
    <ui-select-choices repeat="technology in technologies | filter: $select.search"> 
     <div ng-bind-html="technology.name | highlight: $select.search"></div> 
    </ui-select-choices> 
</ui-select> 

При изменении объектов, изменения не отражены в модели company.stack. Я попытался изменить его на $ parent.company.stack, но он все равно не работает. Что мне не хватает? Я использую AngularJS v1.3.0-beta.17.

+0

Вы когда-нибудь получали эту работу? – Batman

+1

Ответ AunAun правильный. – Frank

ответ

0

У меня похожие проблемы, кажется, угловой-ui-select # 0.7 требует углового # 1.2. * Для правильной работы в данный момент.

0

Я тоже борюсь с очень простым прецедентом, на Angular 1.2.16 и ui-select 0.8.3. Хотя мне кажется, что в вашем коде есть опечатка, в ui-select-match.

Обычно это атрибуты выглядят как {{$select.selected.your_property_here}}, так двойные фигурные скобки и единый знак доллара, за какое-то стандартом имени свойства $select.selected. Может быть, это ваша проблема?

4

Не уверен, что вы это уже поняли, но сегодня я тоже борюсь с этим «основным прецедентом», будучи новым для AngularJS и всех. Я использую Angular 1.2.16 и ui-select 0.8.3, и, хотя все остальное работает, я просто не мог заставить его обновить переменную области employee.selected.

В моем случае проблема была вызвана моим ограниченным опытом работы с AngularJS. Поскольку ng-model имеет свойство объекта (сотрудник, в моем случае), он должен быть сначала инициализирован. Добавление $scope.employee = {}; в контроллер разрешило это.

0

Я решил это, поставив ng-init для этой модели после</ui-select> на следующем div.
Пример:

<div class="col-md-6" ng-init="company-stack=null"> 
25

У меня была аналогичная проблема с angular 1.3.14 и ui-select и множественного выбора ui-select директивы связывания массива. Я не смог привязать выбранные элементы к массиву, указанному в ng-model. Я получил его на работу, окружив selectedItems в объект:

$scope.myObj = { selectedItems : []}; 
... 

<ui-select ng-model="myObj.selectedItems" ...> 
</ui-select> 

Ввод selectedItems непосредственно на $scope не работает для меня.

+0

Это также помогло мне с угловым 1.4. Looks lik UI Select требует, чтобы вы передавали объект, который содержит свойство массива. –

+0

плюс 1. Этот ответ решил мою проблему. –

+0

приятно .. помог мне тоже – shihabudheen

1

Инициализация пустой объект так же, как @Rado упоминалось установил ее для меня на этой структуре:

   <ui-select ng-model="reportFilterStatus.selected" title="Filtrar status"> 
       <ui-select-match placeholder="Filtra un estatus"> 
        {{$select.selected}} 
       </ui-select-match> 
       <ui-select-choices repeat="status in filterStatusOptions | filter: $select.search"> 
        <small ng-bind-html="status | highlight: $select.search"></small> 
        <span ng-bind-html="statuse | highlight: $select.search"></span> 
       </ui-select-choices> 
       </ui-select> 
0

Для меня это был, что не обновляя текст, и я использовал его так:

$timeout(function() { 
    $('#ownerdetail').trigger("create"); 
    $('#ownerdetail').delay(0).animate({opacity: 1}, 100); 
    $('#selectdcontact').selectmenu().selectmenu('refresh'); //This solves it 
    $('#selectdcust').selectmenu().selectmenu('refresh'); //This solves it 
    });