Я получаю массив по AJAX, которая выглядит как этотAngularJS выбор поле со списком не обновляется модель
$scope.eventNameData
Array[2]
0: Object event_id: "1"title: "Event one" __proto__: Object
1: Object event_id: "2"title: "Event two" __proto__: Objectlength:
2__proto__: Array[0]
Таким образом, массив JSON, с каждой записью, имеющей event_id
и title
.
Я хочу, чтобы отобразить выпадающее поле со списком с каждым из названий, и сохранить выбранный event_id
пользователя в $scope.selectedEventId
Мой HTML является
<select ng-model="analyticEvent" ng-options="x.title for x in eventNameData"
ng-change="SelectedAnalyticEventChanged()">
</select>
Я инициализировать модель, когда я получаю данные в формате JSON, с
if (! $scope.eventNameData)
return;
if ($scope.selectedEventId == -1)
{
$scope.selectedEventId = $scope.eventNameData[0]['event_id'];
$scope.analyticEvent = $scope.eventNameData[0];
}
и ручка выбора меняется с
$scope.SelectedAnalyticEventChanged = function()
{
$scope.selectedEventId = $scope.analyticEvent.event_id;
}
но, когда я оставил точку, значение модели $scope.analyticEvent
никогда не изменяется.
ОДНАКО, когда я добавить analyticEvent == {{analyticEvent}}
в мой HTML, перед полем со списком, что является обновляется при выборе из выпадающего списка.
Что я делаю неправильно? Как получить значение event_id
выбранного объекта в $scope.selectedEventId
?
[Update] Googling, я вижу несколько замечаний о child scope
- могло быть это?
[Update ++] Я думаю, что я должен подчеркнуть более, что если дисплей {{selectedEventId}}
в моем HTML, то он становится обновляется правильно - даже если он не обновляется в ng-change
функции - как это может быть?
Просто дикая догадка, но это может быть связано с тем, что вы не используете точка в 'ng-model', см., например, [здесь] (http://stackoverflow.com/questions/18128323/if-you-are-not-using-a-dot-in-your-angularjs -моделей-вы-являются-делать-это неправильно). В любом случае, я не мог воспроизвести проблему. Не могли бы вы добавить Plunker/JSFiddle? – masa
Aha! Проблема с детским прицелом? – Mawg