1

我有一个范围数组变量,我试图动态访问它。它的值已经设置好了。

就像这样。

$scope.setp = { arr: [] };
$scope.setp.arr[0] = "sample Value";

当我尝试如下动态访问它时,我得到了未定义。

console.log($scope['setp.arr[0]']);

但是我可以使用以下内容直接访问它。

console.log($scope.setp.arr[0]);

动态获取范围变量值的方式对其他人来说很好,但当变量名包含方括号时失败,即[]。

我遵循了这个示例,但对于包含数组或方括号 [ ] 的范围变量没有成功。

使用 $parse 服务动态设置范围数组变量也可以正常工作,如下所示。

var scopeVariable = $parse('setp.arr[0]');
scopeVariable.assign($scope, "new Value");
4

1 回答 1

0

这不起作用console.log($scope['setp.arr[0]']);,因为它试图访问一个属性setp.arr[0]。你可以像访问它console.log($scope['setp']['arr'][0]);

于 2016-05-12T12:04:21.300 回答