2017-07-25 10 views
1

内の変数の値に応じて、オブジェクトの要素をバインドすることは可能ですitem1item2などとなります。は、私はこのようなオブジェクトがあるとしangularjs

私のビューにオブジェクト要素をバインドしたいと思います。私の変数の価値に応じてバインドする方法はありますか?以下のような解決策:両方の変数があなたのスコープに宣言されていると仮定すると

{{myObj.[itemHolder]}} 
+2

はい、削除してください。上の式からそれは動作します – Vivz

+1

あなたのコメントありがとう。 :) –

答えて

2

、はい、あなたはそうのようなjavascriptのブラケット表記を使用してそれを行うことができます。

$scope.myObj = { 
    item1: {}, 
    item2: {}, 
    item3: {}, 
    ... 
}; 

$scope.itemHolder = 'item1'; 

次に、以下のような値を補間することができます:

{{ myObj[itemHolder] }} // {} 

の作業スニペット:

angular.module('myApp', []) 
 
    .controller('AppController', function($scope) { 
 

 
    $scope.myObj = { 
 
     item1: { a: 1 }, 
 
     item2: { b: 2 }, 
 
     item3: { c: 3 } 
 
    }; 
 

 
    $scope.itemHolder = 'item1'; 
 

 
    });
<div ng-app="myApp" ng-controller="AppController"> 
 
    Type the prop name<br> 
 
    <input type="text" ng-model="itemHolder"><br> 
 
    {{ myObj[itemHolder] }} 
 
</div> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.0/angular.js"></script>

+0

ありがとうございました。私は本当に愚かな気がした!私はすでに何度も使用していますが...笑! –

関連する問題