通过角度服务处理数据后,Angular $ scope变量不会更新

时间:2013-12-11 14:07:32

标签: javascript angularjs underscore.js angularjs-scope

我正在开发一个通过Angular Resource获取的AngularJs应用程序。

我收到的数据数据很好,并通过ng-repeat查看表格视图中的记录,一切正常。

问题是,当我在服务中使用underscore.js处理我的数据数组时,ng-repeat会得到一个空数组。尽管如此,如果我在处理后记录相同的范围变量,我会得到预期的结果。

我的角色服务代码:

app.factory("DataProcessor", function() {
    return {
        ToAssocArray: function(input) {
            retData = [];
            _.each(input.data, function(elmnt, i, list) {
                retData[elmnt.id] = elmnt;
            });
            return retData;
        }
    };
});

我的控制器的代码段:

app.controller("main_ctrl", function($scope, $timeout, Data, DataProcessor) {
...

    $scope.serverData = [];
    $scope.myData = [];
    $scope.myDataProcessed = [];

    $scope.serverData = Data.query({});
    $scope.serverData.$promise.then(
        function onSuccess(result) {
            $scope.myData = result; // here I receive the data just fine.

            $scope.myDataProcessed = DataProcessor.ToAssocArray(result); // my data processing
            console.log($scope.myDataProcessed); // processed data gets logged flawlessly
        },
    );

当我输入时,在我的html中:

{{myDataProcessed}}

我明白了:

[]

0 个答案:

没有答案