2016-05-12 74 views
1

我有一个范围数组变量,我试图动态访问。它的价值已经确定。在angularjs中获取动态范围数组变量值

它是这样的。

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

当我试图像下面那样动态地访问它时,我得到了undefined。

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

但是我可以直接使用下面的方式访问它。

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

动态获取范围变量的值的方式对别人工作正常,但当变量名包含方括号即[]时失败。

我跟着这个example但没有成功的范围变量包含数组或方括号[]。

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

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

'$ scope ['setp']。arr [0]'或$ scope ['setp'] ['arr'] [0]'如果你想要真正的cray cray。 – ste2425

+0

非常感谢。有效。 –

回答

0

这将无法正常工作console.log($scope['setp.arr[0]']);作为其试图访问属性setp.arr[0]。你可以像console.log($scope['setp']['arr'][0]);