2016-01-06 61 views
2

我有一个JSON数据库,其中显示的内容是控制器和ng-repeat。将URL的一部分传递给AngularJS中的自定义过滤器

它工作得很好。

在列表中,我拥有属于多个类别的项目。

我建立了一个自定义过滤器,只显示符合条件的东西。

app.filter('whichCategory', function($location){ 

    return function(input) { 
     var out = []; 
     var path = $location.path(); 
     var pos = path.lastIndexOf("/"); 
     var categoryName = path.slice(-pos); 

     angular.forEach(input, function(items) { 
      if (items.category == categoryName) { 
       out.push(recipes); 
      } 
     }) 

     return out; 
    } 
}); 

过滤器的工作原理以及与静态的标准,甚至与类别名称,但在这种情况下只带来了从一类,无论网址的元素。

任何想法我错了哪里?

+0

如果你正在使用'ngRoute' /'ui.router'你可能需要使用'$ routeParams' /'$ stateParams'拿来自URL的参数值。 –

回答

0

在此期间,我已经做了一些调试,问题是在pos变量实现时,告诉splice从哪一侧切断。

我从右到左而不是反过来。

printf调试帮助:D。

var categoryName = path.slice(pos+1); 

因为最后一个“/”字符的位置是左起第11位。

我需要在最后一切 “/” 由此+1

相关问题