我想在angularJS中使用$parse
动态创建一个范围变量,该变量引用一个数组,然后push
到该数组;但$parse
的{{1}}方法似乎无法解决问题。
assign
想要推动' 42'进入阵列。所以下面的工作没有成功:
$scope.life.meaning = [];
var the_string = 'life.meaning';
// Get the model
var model = $parse(the_string);
还有其他方法吗?谢谢。
答案 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);