2015-07-01 131 views
0

我有一個顯示項目列表的視圖。要獲得這些項目我使用的服務具有以下公共接口角度服務有什麼問題

 return {     
       items: _items, 
       getItems: _getItems, 
       getItemById: _getItemById, 
       item: _item 
      }; 

服務局部變量是:當我打電話getItems

var _items = []; 
var _item; 

項目數組填充()。 但是,當有人從列表中選擇一個項目。我使用getItemById(id)來獲取並初始化_item變量。 (該項目被發現,似乎給init _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

改變您的服務回報'{項目:回報_items,getItems:...}' – Ankita

+0

似乎工作:)不過我不明白它,導致數組是可直接訪問的項目。 – den

+0

getItemById(id)是做什麼的? –

回答

0

從評論

改變您的服務來回報{項目:回報_items,getItems:...}