2015-07-06 2 views
0

В моем угловом контроллере я хотел бы фильтровать и назначать некоторый объект с true значением. Я пытаюсь итерации с использованием angular.forEach, но я получаю все объекты в качестве результата вместо получения правдивого объекта.Как фильтровать «объекты» по его значению

вот мой код:

$scope.splash.$promise.then(function (result) { 

      $scope.allApps = result; //50 apps. 
      // splashAppsHandler(); 

      $scope.splashApps = angular.forEach($scope.allApps, function (app) { 

       return app.projects.project.splash === true; //only 5 apps 

      }); 

      console.log($scope.splashApps); //getting all 50 apps!? 


     }); 

Что такое правильный способ сделать это?

ответ

1

Вам необходимо сохранить правдивые объекты в массиве или объекте. В настоящее время вы не делаете внутри угловой для каждого.

$scope.truthyObjects = []; 
$scope.splash.$promise.then(function (result) { 

     $scope.allApps = result; //50 apps. 
     // splashAppsHandler(); 

     $scope.splashApps = angular.forEach($scope.allApps, function (app) { 

      if(app.projects.project.splash === true) { 
       $scope.truthyObjects.push(app); // save truthy object 
      } 

     }); 

     console.log($scope.splashApps); //getting all 50 apps!? 


    }); 
+0

Да, работает. мой вопрос заключается в том, что в будущем объект '$ scope.truthyObjects' будет изменен, будет ли обновляться' $ scope.allApps'? иначе как обращаться? – user2024080

+0

Вам нужно '$ scope.allApps' иметь только правдивые объекты? –

+0

Нет, он должен содержать все приложения, это нормально. от allapps, мне нужно, чтобы некоторые приложения были на высокой скорости на странице. теперь я взял некоторый объект для 'trurythObjects', когда я произвел какое-либо изменение в' trueyObjects', которое будет обновлено до 'allapps' тоже? – user2024080

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