forEach上的双向数据绑定?

时间:2016-02-27 08:10:49

标签: javascript angularjs

我有一个产品的对象。我从资源(Product)获得的产品,存储在工厂(productsStore)中,并在控制器中迭代。

在另一个控制器中,我想通过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'
        }
    });
});

1 个答案:

答案 0 :(得分:0)

尝试循环解析promise后得到的数据,否则它是一个相当无用的变量。

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

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