2015-02-08 4 views
-1

Я пытаюсь отфильтровать массив: вот моя скрипка: Demo.
есть два списка выбора, здесь есть условие:дисплей массива условно: Angular

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)?
Many Thanks

+0

Как вы решили, что 1234 должен показать 002 004 005. Вы должны попытаться включить фактический сценарий, который вы пытаетесь достичь, вместо того, чтобы составить случайный сценарий. – Gabs00

+0

Можете ли вы объяснить логику в отношении критики? Почему должно '1234' быть' 002, 004, 005'? – tasseKATT

+0

Это правило, это не случайный или поддельный сценарий, вот что должна создать наша команда. – sani

ответ

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); 
} 

});

Смежные вопросы