【发布时间】:2015-07-09 14:58:08
【问题描述】:
我有一个显示项目列表的视图。为了获得这些项目,我使用具有以下公共接口的服务
return {
items: _items,
getItems: _getItems,
getItemById: _getItemById,
item: _item
};
服务局部变量为:
var _items = [];
var _item;
当我调用 getItems() 时,items 数组被填充。
但是,当有人从列表中选择一个项目时。我使用 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”等页面。这就是我决定在我的服务中跟踪项目的原因。也许有更好的做法?
【问题讨论】:
-
将您的服务更改为
return {items : return _items,getItems:...} -
似乎可以工作:) 但是我不明白,因为数组中的项目可以直接访问。
-
getItemById(id)是做什么的? -
typo错误..和getGirlById一样
标签: javascript angularjs