【问题标题】:What is wrong with angular service角度服务有什么问题
【发布时间】: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


【解决方案1】:

来自 cmets

将您的服务更改为返回 {items : return _items,getItems:...}

【讨论】:

    猜你喜欢
    • 2016-07-20
    • 1970-01-01
    • 2017-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多