Использование AngularJS, как мне привязать элемент <select> к атрибуту, который обновляется через службу
У меня есть контроллер дисплея и контроллер управления. Внутри моего контроллера дисплея у меня есть селектор выпадающего списка со списком элементов, которые были выбраны.
Я могу получить раскрывающийся список области отображения, чтобы обновить список, добавив элементы, поскольку они добавлены в контроллер управления, но я не могу понять, как выбрать новейший элемент в раскрывающемся списке.
<div ng-controller="MyDisplayCtrl">
<select ng-model="item" ng-options="i.name for i in items">
</select>
</div>
Я сделал jsfiddle, чтобы проиллюстрировать мою ситуацию. В конечном счете, однако, мой вопрос заключается в том, как связать эту ng-model = "item" с источником данных, обновленным службой.
http://jsfiddle.net/whtevn/mUhPW/2/
Ответы
Ответ 1
Хорошо, похоже, я нашел довольно удовлетворительный ответ на этот вопрос.
Я сам обнаружил объект хранения через контроллер
function MyDisplayCtrl($scope, ItemStore) {
$scope.items = ItemStore.items;
$scope.item = ItemStore.currentItem;
// expose the itemstore service to the dom
$scope.store = ItemStore
$scope.getItem = function(){
return(ItemStore.currentItem);
}
}
а затем непосредственно обратиться к текущему элементу
<div ng-controller="MyDisplayCtrl">
<select ng-model="store.currentItem" ng-options="i.name for i in items">
</select>
</div>
http://jsfiddle.net/whtevn/Cp2RJ/3/
Ответ 2
Попробуйте использовать ng-options
:
<div ng-controller="MyDisplayCtrl">
<select ng-options="i.name for i in items"></select>
</div>
Смотрите: http://docs.angularjs.org/api/ng.directive:select