我有一個自定義的指令,「我的中繼器」下面的代碼:結合納克指令
<div ng-controller="AngularCtrl">
<div my-repeater='{{items}}'>Click here</div>
</div>
這裏是我的自定義指令:
myApp.directive('myRepeater', function($compile) {
return {
restrict: 'A',
link: function(scope, element, attrs) {
var myTemplate = "<div ng-click='updateRating({{item}});' ng-class='getRatingClass({{rating}});'>{{rating}}</div>";
var items = scope.items;
console.log('length: ' + items.length);
for (var i = 0; i < items.length; i++) {
var child = scope.$new(true);
console.log(items[i].ratings);
child.item = items[i];
child.rating = items[i].ratings;
var text = $compile(myTemplate)(child);
element.append(text);
}
}
};
});
ng-click and ng-class綁定在我的自定義指令中沒有正確地發生。任何人都可以幫助我在這裏做錯了嗎?
這是JS小提琴。 http://jsfiddle.net/JSWorld/4Yrth/5/
謝謝rseidi!但我不想用ng-repeat。我正面臨嵌套的ng-repeats問題,因爲它堆積了堆內存。因此我想寫我自己的ng-repeat自定義指令,因此我想出了這個。你能不能使用ng-repeat來幫助我獲得這個綁定? –
Humm,我沒有看到這個問題在哪裏會比使用ngRepeat更好,你在什麼時候顯示多少項?你真的想做什麼? – rseidi
我大約有150 * 150個物品要顯示。所以嵌套的ng-repeat對我不起作用。所以我必須去寫客戶之一。請參閱本文以供參考。 http://stackoverflow.com/questions/14065050/angular-js-consumes-more-browser-memory/ –