我有这个小提琴HERE

我要检查模型“ sectionSelect”的选定值,并基于选定值,将其设置为“ 1”或“ 2”,我想用与选定值匹配的新值填充newArr,以便相应地过滤最低和最高价格。

我现在正在做的是...

if ($scope.sectionSelect == 1) {

    for($i=0; $i < arr.length; $i++){

        if(arr[$i]['section'] === 1) {
            newArr.push(arr[$i]['value']);
        }
    }

} else if($scope.sectionSelect == 2) {
    for($i=0; $i < arr.length; $i++){

        if(arr[$i]['section'] === 2) {
            newArr.push(arr[$i]['value']);
        }
    }
}


但这似乎不起作用。
我该怎么办?

这就是我所拥有的,并且正在运行http://jsfiddle.net/sheko_elanteko/Anj3w/26/
我只想向其中添加过滤器功能。

最佳答案

使用Angular筛选内容的最简单方法是使用内置的筛选功能。我在这里更新了您的小提琴:http://jsfiddle.net/CQyTa/

对html所做的更改使用下拉菜单设置所选内容的范围值。然后,这些值可用作过滤器(在这种情况下,我将根据选择的部分来过滤最小值和最大值)。

<select ng-model="sectionSelect" ng-options="section.label for section in sections" ng-change="clearMinMax()">
</select>
<select ng-model="minVal" ng-options="item.value for item in app_data | filter:sectionSelect.section | orderBy:'value'">
    <option value="">Min Price</option>
</select>
<select ng-model="maxVal" ng-options="item.value for item in app_data | filter: sectionSelect.section | orderBy:'-value'">
    <option value="">Max Price</option>
</select>


根据这些下拉菜单中选择的内容,您可以使用所有这些内容来过滤应显示的内容。 minMax函数位于控制器中,它仅检查该值是否在min和max之间。

<div ng-repeat="item in app_data | filter:sectionSelect.section | filter:minMax | orderBy:'value'">
    {{item.value}}
</div>


如果您有任何疑问,请告诉我!

关于javascript - 使用angularjs观看下拉列表的选定值以填充数组取决于选定值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24431750/

10-12 07:09