我有一个显示项目列表的视图。要获取这些项目,我使用具有以下公共接口的服务
return {
items: _items,
getItems: _getItems,
getItemById: _getItemById,
item: _item
};
服务局部变量是:
var _items = [];
var _item;
当我调用getItems()时, items数组被填充。
但是,当有人从列表中选择一个项目时。我使用getItemById(id)来获取和init _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”等页面。这就是为什么我决定跟踪我服务中的项目。也许有更好的做法?
答案 0 :(得分:0)
来自评论
更改您的服务以返回{items:return _items,getItems:...}