在一个Angular应用程序中,我创建了一个工厂,在那里我获得了所有产品并将它们放入工厂变量中。从那里我可以抓住它们,无论我需要它们。到目前为止很好。 然后我想手动遍历products数组中的所有项目。我尝试了以下内容;
我的工厂第一次
myApp.factory('myStore', function ($http, $q, Store) {
var products = "";
// Bind products
products = Store.query();
return {
get: function () {
return products;
},
getSingle: function(id) {
},
set: function (data) {
products = data;
},
add: function (data) {
}
};
});
在我的控制器中我有
// Bind products to list
vm.products = myStore.get();
console.log(vm.products);
for (var prop in vm.products) {
// returns just 2 objects?
console.log(prop);
}
for (i = 0; i < vm.products.length; i++) {
// Does not wok at all?
}
vm.products.forEach(function (child) {
// Does not work either. Simply does nothing.
});
我需要做什么才能遍历我的数组?
返回的产品格式正确,值正确。
是什么给出了?
资源:
myApp.factory('Store', function ($resource) {
return $resource('http://api.com/api/products/:id', { id: '@id' }, {
update: {
method: 'PUT'
}
});
});
console.log(vm.products)的输出:http://screencast.com/t/Q52EJ2F7gf
答案 0 :(得分:1)
我将循环更改为
vm.positions.$promise.then(function(data)
然后它奏效了。因此,这是一个承诺问题..当然。