0

我有一個過濾器:AngularJS過濾無限消化

filter('keys', [function() { 
    return function(obj) { 
    if (angular.isObject(obj)) { 
     return Object.keys(obj); 
    } 
    }; 
}]) 

此過濾器,然後用一個對象來拿到鑰匙。我使用的是這樣的:

<directive data="{test: 1, test1: 2, test2: 3} | keys"></directive>

我也得到一個無限消化錯誤。爲什麼?

+0

這段代碼很難理解這個問題。這裏的'指令'是什麼? – PSL

+0

AngularJS指令或任何元素。 –

+0

您是否可以在運行中複製問題 – PSL

回答

0

我的猜測是,每個循環創建一個全新的對象進行過濾。您的過濾器會在視圖中創建一個新對象,該對象將返回觸發摘要以在新對象上使用過濾器等等。

您應該在控制器中定義對象以防止在每個循環中在視圖中創建新對象。

更好的辦法是在控制器中使用你的過濾器,這將阻止每個循環中使用的過濾器。