2017-06-23 389 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

對不起,只要刪除控制器和視圖上的'_'。但方法是相同的...更新上面的答案。 –