有条件地显示数组:Angular

时间:2015-02-08 19:29:00

标签: angularjs angular-filters

我试图过滤我的数组:这是我的小提琴:Demo 有两个选择列表,这里是条件:

when top select list === 123        ====> bottom select list should show 001,002,003 

when top select list === 1234        ====> bottom select list should show 002,004,005

我应该使用这样的.slice(1, 3)吗? 非常感谢

1 个答案:

答案 0 :(得分:0)

这是一个做你想要的小提琴,1234显示002,004,005,因为它确实如此。 here

var app = angular.module('myApp', []);
app.controller('mainCtrl', function($scope){
$scope.colors = [
    {name:'black', shade:'123'},
    {name:'white', shade:'1234'},

];
var allRanges =  [
    {id:'001', number:'1'},
    {id:'002', number:'2'},
    {id:'003', number:'3'},
    {id:'004', number:'4'},
    {id:'005', number:'5'}
];

$scope.range = [];



$scope.check = function(){
    var filter;
    if($scope.color === "black"){
        filter = function(r){
            if(r.number < 4){
                return true;
            }
        };
    } else if($scope.color === 'white'){
        filter = function(r){
            if(['2','4','5'].indexOf(r.number) >= 0){
                return true;
            }
        };
    }
    $scope.range = allRanges.filter(filter);
}

});