Что не так с угловым обслуживанием

0

У меня есть представление, которое отображает список элементов. Чтобы получить эти элементы, я пользуюсь сервисом со следующим открытым интерфейсом

     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" и т.д. Вот почему я решил отслеживать элемент в своем сервисе. может быть, есть лучшая практика?

Теги:

1 ответ

0
Лучший ответ

Из комментариев

измените свой сервис, чтобы вернуть {items: return _items, getItems:...}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню