forEach上的双向数据绑定?

问题描述:

我有一个产品的对象。我从资源获得的产品(Product),存储在工厂(productsStore)中,并在控制器中迭代。forEach上的双向数据绑定?

在另一个控制器中,我想通过productsStore.empty();productsStore.get();清空刷新产品。但他们中的任何一个都什么都不做意思是我的forEach,下面,没有再次运行,并且列表没有更新。 我在做什么错?

控制器:

vm.products = productsStore.get(); 
vm.products.$promise.then(function (data) { 
    angular.forEach(vm.products, function (child) { 
     //. some code 
    )}; 
)}; 

厂:

myApp.factory('productsStore', function ($http, $q, Product) { 
    var products = ""; 

    var get = function() { 
     return products = Product.query(); 
    }; 

    var empty = function() { 
     return products = {}; 
    }; 

    // Bind products 
    products = get(); 

    return { 
     get: get, 
     empty: empty 
    }; 
}); 

资源:

myApp.factory('Product', function ($resource) { 
    return $resource('http://api.com/api/products/:id', { id: '@id' }, { 
     update: { 
      method: 'PUT' 
     } 
    }); 
}); 
+0

Promise只解析一次。 – dfsq

尝试通过你的承诺得到解决后的数据环,否则它是一个相当无用变量。

angular.forEach(data, function(child) { 
    //...do something with the child 
}); 

此外,你有一个错字,我不确定你是否在你的实际代码中。在你的控制器中,块的末尾应该是})而不是)}

+0

我试图彻底删除诺言检查,但没有改变。仍然没有更新: -/ – brother

+0

诺言检查是什么意思?除了用“forEach”块中的“data”替换“vm.products”之外,不应删除任何内容。 –

+0

啊,对不起。误解了你。现在改变了它,但仍然没有。嗯 – brother