У меня есть контроллер с именем dataController, две услуги, названный dataHttpServices и dataLocalServices и шаблон HTML, некоторые директивы.AngularJs массив не Binding к шаблону
В моем шаблоне html у меня есть две разные вкладки, которые используют один и тот же контроллер и добавляют элемент к списку в моем контроллере из двух разных мест.
В режиме отладки, я вижу, что данные изменяются правильно, но привязка данных работает неправильно.
Я не знаю. Какая у меня ошибка, помогите пожалуйста. В коде;
Html;
<div
class="metadataSelect"
layout="column"
ng-model="selectedItems"
ng-show="selectedItems.length > 0">
<div layout="row" ng-repeat="item in selectedItems">
{{item.Name}}
</div>
</div>
Это контроллер;
$scope.addSelectedItem = function (selectedItem) {
var found = false;
var self = this;
dataLocalService.addSelectedItem(selectedItem);
$scope.selectedItems = dataLocalService.getSelectedItems();
};
И вот услуга;
this.selectedItems = [];
this.addSelectedItem = function (item) {
this.selectedItems.push(item);
};
this.getSelectedItems = function() {
return this.selectedItems;
};
Я называю addSelectedItem из сферы в событии нажатия кнопки два разных с нг нажмите.
Если я впервые добавлю элемент, нажмите первую кнопку и нажмите вторую кнопку (сначала нажмите первую кнопку), кнопка привязывает массив к div правильно.
Но когда я добавляю элемент, щелкнув вторую кнопку перед нажатием первой кнопки, массив не привязывается к div.
После добавления некоторых элементов в массив нажмите вторую кнопку, когда я нажимаю первую кнопку, привязываю все элементы к div. Например, три элемента одновременно, но не привязываются, не нажимая первую кнопку.
Каковы мои ошибки. Спасибо за помощь.
Показывая только фрагменты кода, трудно определить контекст («я» в контроллере и «это» в службе). Вероятно, корень вашей проблемы находится в коде, который мы не видим. Пожалуйста, предоставьте весь соответствующий код ... плункер будет очень приятным. – jbrown
Почему у вас есть что 'ng-model =" selectedItems "' в div? .metadataSelect "? –
, что сказал ГабриэльХоболд, а также почему вы сохраняете '$ scope.selectedItems = dataLocalService.getSelectedItems();' inside '$ scope.addSelectedItem'? – apieceofbart