有条件地显示数组:Angular
display array conditionally : Angular
我正在尝试过滤我的数组:这是我的 fiddle:Demo.
有两个 select 列表,这里是条件:
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)
?
非常感谢
这里有一个 fiddle 可以满足您的需求,其中 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);
}
});
我正在尝试过滤我的数组:这是我的 fiddle:Demo.
有两个 select 列表,这里是条件:
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)
?
非常感谢
这里有一个 fiddle 可以满足您的需求,其中 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);
}
});