如何根据filterOption获取对象中的值以进行迭代?宽度还是高度?我需要绑定到模型吗?大多数其他类似的问题都与模型有关。
目标: ng-repeat="section in prefs.filter.DYNAMIC_VALUE_FROM_filterOption
不输出任何内容:
ng-repeat="section in prefs.filter[0]
成功但不动态 - 宽度是硬编码的。 ng-repeat =“prefs.filter.width中的部分”
FIDDLE http://jsfiddle.net/xyp6y1ap/2/
JAVASCRIPT
function MainCtrl($scope) {
$scope.prefs = {
atts: ['width', 'height'],
filter: {
width: ['160', '180', '300', '728'],
height: ['90', '150', '250', '600'],
},
filterOption: 1
};
}
HTML中的REPEATER
ng-repeat="section in prefs.filter.DYNAMIC_VALUE"
ng-repeat="section in prefs.filter.width"
答案 0 :(得分:3)
就像你在JavaScript中一样。
我假设 $scope.prefs.filterOption
是要迭代的属性的数组$scope.prefs.atts
中的索引。
因此,该属性的名称为$scope.prefs.atts[$scope.prefs.filterOption]
。
因此,想要迭代的实际数组是
$scope.prefs.filter[$scope.prefs.atts[$scope.prefs.filterOption]]
所以你想要的,在HTML
中ng-repeat="section in prefs.filter[prefs.atts[prefs.filterOption]]"
但是,这非常令人费解。控制器的目的是为视图提供易于使用的模型。而不是动态设置索引的值,它本身允许访问属性的名称,它本身允许访问宽度或高度的数组,你应该简单地动态设置一个指向数组本身的变量。
答案 1 :(得分:0)
您可以在ng-repeat中使用键值对,如:
<section ng-repeat="item in prefs.filter">
<section ng-repeat="(key,value) in item">
{{value}}
</section>
</section>
http://plnkr.co/edit/IPY2YUWLlquWKI7I5MM2?p=preview