你能用$ parse推送到Angular中动态声明的数组吗?

时间:2015-08-05 19:18:15

标签: javascript arrays angularjs

我想在angularJS中使用$parse动态创建一个范围变量,该变量引用一个数组,然后push到该数组;但$parse的{​​{1}}方法似乎无法解决问题。

assign

想要推动' 42'进入阵列。所以下面的工作没有成功:

$scope.life.meaning = [];

var the_string = 'life.meaning';

// Get the model
var model = $parse(the_string);

还有其他方法吗?谢谢。

1 个答案:

答案 0 :(得分:4)

您的示例将覆盖范围上该对象的分配。 $ parse可用于获取或进行分配。您需要做什么来获取阵列,然后将项目推送到您获得的阵列上。因为JavaScript数组是内存中的指针,所以添加到你检索的数组就可以了。

//get the current value as evaluated against the $scope
var ar = $parse('life.meaning')($scope);

//if the value isn't an array then make it one
if (!Array.isArray(ar)) {
    ar = [];
    $parse('life.meaning').assign($scope, ar);
}

//add an item to the array
ar.push(42);