2016-01-06 62 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

相關問題