一尘不染

在Angular中,我需要搜索数组中的对象

angularjs

在Angular中,我在范围内有一个对象,该对象返回许多对象。每个都有一个ID(此ID存储在一个平面文件中,因此没有DB,而且我似乎无法使用ng- resource

在我的控制器中:

$scope.fish = [
    {category:'freshwater', id:'1', name: 'trout', more:'false'},
    {category:'freshwater', id:'2', name:'bass', more:'false'}
];

在我看来,我还有关于默认隐藏的鱼类的ng- show更多附加信息,但是当我单击简单的显示更多标签时,我想调用该函数showdetails(fish.fish_id)。我的函数看起来像:

$scope.showdetails = function(fish_id) {  
    var fish = $scope.fish.get({id: fish_id});
    fish.more = true;
}

现在,在视图中将显示更多详细信息。但是,在搜索了文档之后,我无法弄清楚如何搜索该fish数组。

那么如何查询数组?在控制台中如何调用调试器,以便可以使用$scope对象?


阅读 299

收藏
2020-07-04

共1个答案

一尘不染

我知道这是否可以帮助您。

这是我尝试为您模拟的内容。

签出jsFiddle;)

http://jsfiddle.net/migontech/gbW8Z/5/

创建了也可以在“ ng-repeat”中使用的过滤器

app.filter('getById', function() {
  return function(input, id) {
    var i=0, len=input.length;
    for (; i<len; i++) {
      if (+input[i].id == +id) {
        return input[i];
      }
    }
    return null;
  }
});

控制器中的用法:

app.controller('SomeController', ['$scope', '$filter', function($scope, $filter) {
     $scope.fish = [{category:'freshwater', id:'1', name: 'trout', more:'false'},  {category:'freshwater', id:'2', name:'bass', more:'false'}]

     $scope.showdetails = function(fish_id){
         var found = $filter('getById')($scope.fish, fish_id);
         console.log(found);
         $scope.selected = JSON.stringify(found);
     }
}]);

如有任何疑问,请告诉我。

2020-07-04