我是動態添加Li元素的,其中我附加了範圍函數。但是當我點擊它時會被多次調用。 請看這個小提琴演示,我得到這個問題。 http://jsfiddle.net/udmcv/260/範圍函數在AngularJs中被多次調用
的HTML是如下
<div style="border:solid;color:red;Margin-bottom:4px;">
Click on Create Button to Generate the required li'sThe issue is that when there multiple Li the corresponding is getting called multiple time
<ul id="ulTabList" >
</ul>
</div>
<div style="margin-top:10px;">
<input type="button" ng-click="Addli()" value="Create"/>
</div>
以下是我使用
var app = angular.module('my-app', [], function() {
})
app.controller('AppController', function ($scope, $compile) {
var workGroupTab ="TestA"
$scope.Addli =function(){
var el = $("#ulTabList").append('<li ng-click="OpenWorkGroupTab();">Text of Li</li>'
+'<input id="btnClose_4341" type="button" value="btn" style="margin-left:1px;" ng-click="fn_btnClose()">');
$compile(el.contents())($scope);
}
$scope.fn_btnClose = function(){
console.log('clicked'+ 'val');
}
$scope.OpenWorkGroupTab =function(){
console.log('val2');
}
})
我也看到了一些帖子裏面說的一些建議,但那個喧囂的角碼不爲我工作。 這個問題就像是假設當我有3個li生成然後點擊第一個li按鈕它被稱爲3次。 當我點擊第二個按鈕時,它會被調用2次,依此類推。
請爲這個問題提出一些想法。 謝謝!
爲什麼你不使用'ng-repeat'? – Grundy
不要像這樣手動添加到DOM。你應該操作綁定到視圖的數據結構來創建你想要的內容......而不是手動操作視圖。 – tymeJV
@Grundy:其實我想要li元素得到生成並附加到UI上,只有按鈕的點擊 –