2017-06-23 209 views
0

我想在angular.I中创建动态范围变量,我使用循环将变量名称设置为v1,v2,v3,但仍然没有成功。 任何想法如何实现这一目标?angularjs中的动态范围变量

JS

for (var i = 0; i < 4; i++) { 
    $scope.v_i='value'+i; 
    } 

HTML

<div>{{v1}}</div> 
<div>{{v2}}</div> 
<div>{{v3}}</div> 
+4

你为什么不让它数组? – Vivz

回答

2

可以使用$scope对象的typeof Array。 但我会将它们包装到$scope对象封装器items。 请参阅下面两种方法。

VIEW

<div ng-app="app" ng-controller="MainController"> 

    {{v0}} 
    <br/> {{v1}} 
    <br/> {{v2}} 
    <br/> {{v3}} 
    <br/> 
    <br/> {{items}} 
    <br/> 
    <br/> 
    <div ng-repeat="item in items"> 
    {{item}} 
    </div> 


</div> 

控制器

angular 
.module('app', []) 
.controller('MainController', MainController) 

function MainController($scope) { 
    $scope.items = {}; 
    for (var i = 0; i < 4; i++) { 
    $scope['v' + i] = 'value' + i; 
    // or add to object wrapper 
    $scope.items['v' + i] = 'value' + i; 
    } 
} 

JSFIDDLE

+0

如何在视图中显示? – query

+0

鉴于HTML,看起来它必须是'$ scope ['v'+ i]'。另外,说你使用它作为'Array'可能有点误导。您在对象上使用括号表示法。 –

+0

对不起,只要删除控制器和视图上的'_'。但方法是相同的...更新上面的答案。 –