2016-08-23 7 views
1

こんにちは、私はこのようないくつかをしたい:JSON変数の値をどのように動的に取得するのですか?

{{item.price.{{comparator}}}} 

私は意味は、{{コンパレータ}}変数を使用して価格の種類の値を取ります。

これは私のコードの例である(データが大きいと私は価格のより多くの種類があります):

var items = [ 
 
    {"name":"Item1",price:{public:10,private:15,other1:16.3,other2:17.5}}, 
 
    {"name":"Item2",price:{public:20,private:45}}, 
 
] 
 
    
 
var angularApp = angular.module('angularApp', [ 
 
    'angularAppControllers', 
 
]); 
 

 
var angularAppControllers = angular.module('angularAppControllers', []); 
 

 

 
angularAppControllers.controller('ComparationCtrl', ['$scope', 
 
    function ($scope) { 
 
     $scope.comparator = "private"; 
 
     
 
     $scope.data = items; 
 
    } 
 
]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div ng-App="angularApp"> 
 
<div ng-controller="ComparationCtrl"> 
 
    <select ng-model="comparator"> 
 
    <option value="public">Public</option> 
 
    <option value="private">Private</option> 
 
    <option value="other1">Other 1</option> 
 
    <option value="other2">Other 2</option> 
 
    <option value="othern">....</option> 
 
    </select> 
 
    {{comparator}} 
 
    <br /> 
 
    <ul> 
 
    <li ng-repeat="item in data"> 
 
     {{item.name}} - {{item.price.public}} - <strong>(item.price.{{comparator}})</strong> 
 
    </li> 
 
</ul> 
 
</div> 
 
</div>

答えて

0

https://plnkr.co/edit/IrheJrHz8eOfb5LmTx7x

angular.module('app', []) 
    .config(function() { 

    }) 
    .controller('ctrl', function($scope) { 
    $scope.obj = { 
     "name": "Item1", 
     "price": { 
     "public": "10", 
     "private": "15", 
     "other1": "16.3", 
     "other2": "17.5" 
     } 
    }; 
    $scope.prop = 'public'; 
}); 

とHTML:

<!DOCTYPE html> 
<html ng-app="app"> 

<head> 
    <script src="https://code.angularjs.org/1.5.8/angular.js"></script> 
    <link rel="stylesheet" href="style.css"> 
</head> 

<body ng-controller="ctrl"> 
    <pre>{{obj.price[prop]|json}}</pre> 
    <script src="script.js"></script> 
</body> 

</html> 

基本的には、{{OBJ [aPropertyDefinedInScope]}}

2

ハム、item.pricecomparatorがあなたの$の範囲で定義されていると仮定すると、試してみてください。このよう

{{ item.price[comparator] }} 
関連する問題