$ scope.myDataArray.map()以Infinite $ digest循环结束

时间:2015-10-19 14:56:24

标签: javascript arrays angularjs

我有一个从作用域获取数组的函数,根据传递给它的选项以某种方式对其进行格式化并返回一个新数组。

看起来像这样:

$scope.utils.data: function (options) {
if (options === 'table') {
    return $scope.sourceData
}
else {
    return $scope.sourceData
        .map(function (group, index) {
            return {
                x: group.x || 0,
                y: group.y || 0,
                radius: group.r || 0,
                deals: group.d || 0,
                id: index,
                label: group.type
            }
        })
}

}

我检查选项是' table',然后返回未修改的源数据。但如果它是别的东西,那么将重新格式化的数据作为数组返回。

上面的示例工作正常,但现在我想添加更多选项作为参数,因此决定使用一个对象,如{type:'table', excluded:[2, 20, 31]},以便在存在此参数时排除三个项目。

问题在于,如果我将选项转换为对象,并检查options.typeoptions.excluded,就像我之前做的那样,但是使用对象而不是字符串,它会返回{{3} }。

在错误文档中写道:

  

一个常见错误是绑定到每次调用时都会生成新数组的函数。

所以我觉得return $scope.sourceData.map()本身在这种情况下不合法,但只有当我将选项作为对象而不是字符串传递时才会中断,否则它会正常工作。

如何解决此问题?有线索吗?

0 个答案:

没有答案