2015-09-03 2 views
0

Я пытаюсь связать выбор в Angular и проблемы.Невозможно получить выбор для работы в angularJs

Вот HTML

<select name="event" ng-model="data.eventID" ng-options="event as event.name for event in events track by event.eventID"> 
    <option value="0">--- Please select ---</option> 
</select> 

В мой контроллер я инициализировать "данные" до того, как AJAX звонки, как это:

$ scope.data = {с кодом события: 0}

Проблема № 1 , data.events получает заполняется через вызов AJAX, но результирующий HTML выглядит следующим образом:

<select name="event" ng-model="data.eventID" ng-options="event as event.name for event in events track by event.eventID" class="ng-pristine ng-untouched ng-valid"> 
    <option value="?" selected="selected"></option> 
    <option value="2" label="My Event">My Event</option> 
</select> 

Проблема № 2. Второй вызов AXAJ загружает $ scope.data, поэтому он становится $ scope.data.eventID = 2, но выбор никогда не выбирается для события с идентификатором 2.

Обратите внимание, что я хочу привязываться к data.eventID, целое, а не объект.

Благодарим за помощь.

+0

Вы можете восстановить свою ошибку в плункер или скрипку? –

+0

Вот ссылка http://plnkr.co/edit/Eu3Rhgtkaeo97hFr1uNR на plunkr. Благодарю. – user1044169

+0

Пожалуйста, уточните мой обновленный ответ. –

ответ

0

вы должны определить ссылку на eventID

так что ваш выбор-выбор должен быть

<select name="event" ng-model="data.eventID" ng-options="event.eventID as event.name for event in events track by event.eventID"> 
    <option value="0">--- Please select ---</option> 
</select> 

в select-options дополнительных устройств определить, что должно отображаться на странице и что должно быть привязки этого значения, как только выбранной.

так нг-опция = "event.eventID как event.name" средств для event.name является отображением на странице, и для этого event.name -> event.eventID будет пройти контроллер с помощью нг покадрово

Update:

на основе вы plunker

у вас есть $scope.data = {eventID: 0}; поэтому его всегда выбрать пожалуйста, выберите

мг-модель двухсторонняя связывают так, его связывают значение выбранного параметра.

проверить это updated punker

удалить track by event.eventID у вас есть EVENTID, которые обеспечивают уникальную идентификацию для каждого вашего option тега.

+0

Спасибо, но это все еще не сработало. Я изменил его на «event.eventID как event.name для события в треке событий event.eventID», но в результате HTML по-прежнему отображается эта новая опция , удаляет мой «Пожалуйста, выберите» и не переключается на data.eventID, загруженный через AJAX. – user1044169

+0

Спасибо, но в вашем обновленном решении «Пожалуйста, выберите» исчезнет.То, что я пытаюсь сделать, это довольно шаблонный элемент - элемент управления select с «Please select», чтобы указать, что не было выбрано ни одно значение, параметры, привязанные к массиву, и значение, связанное с целым числом в области. – user1044169

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