2017-06-23 5 views
0

角度でダイナミックスコープ変数を作成しようとしています。ループを使用して変数名を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

あなたがtypeof演算Arrayとして$scopeオブジェクトを使用することができます。 しかし、私はそれらを$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> 

CONTROLLER

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

残念ながらコントローラとビューで '_'を削除するだけです。しかし、アプローチは同じです...上記の答えを更新しました。 –

関連する問題