首先感謝我的英文。 我的問題是:angular:ng-class中ng-repeater,重複呼叫
我這個簡單的代碼:
<li ng:repeat="item in menu.items" ng:class="getMenuItemClass(item)">
<a ng:href="#{{item.url}}">{{item.label}}</a>
</li>
,這我getMenuItemClass:
scope.getMenuItemClass = function(item) {
console.log(item)
var hashPath = $location.hashPath || '/';
if (hashPath === item.url) {
return 'selected';
}
return '';
};
這是現成的例子, 我不知道爲什麼,但在我的真實應用程序中,它一式三份! :0 有人可以向我解釋,如果我犯了一個錯誤?
我已經更新到jsfddle角的最後一個版本,現在它的一式四份! 觀看 http://jsfiddle.net/h7yKr/46/
編輯爲clarication: 問題是getMenuItemClass() 被稱爲多了很多次,然後要求, 嘗試打開的jsfiddle並打開瀏覽器控制檯和觀看的console.log!
我沒有看到任何被三倍或四倍的東西 - 我只看到兩個菜單選項Home和Alt。你能否進一步澄清? – blaster
對不起!你是對的,問題是getMenuItemClass() 被調用的次數要多得多,嘗試打開jsfiddle並打開瀏覽器控制檯並觀察console.log! – justBorn