У меня есть представление, которое отображает список элементов. Чтобы получить эти элементы, я пользуюсь сервисом со следующим открытым интерфейсом
return {
items: _items,
getItems: _getItems,
getItemById: _getItemById,
item: _item
};
Локальные переменные службы:
var _items = [];
var _item;
массив элементов заполняется, когда я вызываю getItems(). Однако, когда кто-то выбирает элемент из списка. Я использую getItemById (id) для извлечения и инициализации переменной _item. (Элемент найден и появляется, чтобы инициализировать _item
.
Но есть что-то неправильное, когда я пытаюсь получить доступ к элементу с моего контроллера, он выглядит как неопределенный. itemsService.item
var _getItemById = function (id) {
_item = null;
$.each(_items, function (i, item) {
if (item.id == id) {
_item = item;
console.log(_item); //this works
return false;
}
});
}
Я хочу отслеживать выбранный элемент, так как у меня есть такие страницы, как "ItemsList", "ItemDetail", "ItemExtra" и т.д. Вот почему я решил отслеживать элемент в своем сервисе. может быть, есть лучшая практика?
Из комментариев
измените свой сервис, чтобы вернуть {items: return _items, getItems:...}