$scope.showtbleoption = function(id)
{
console.log(id);
$("#showoption").empty();
$("#showoption").append('<button class="btn btn-info" ng-click="editrc(id)">');
};
如何在angularjs控制器中調用editrc()函數?如何調用附加在div中的angularjs函數
$scope.showtbleoption = function(id)
{
console.log(id);
$("#showoption").empty();
$("#showoption").append('<button class="btn btn-info" ng-click="editrc(id)">');
};
如何在angularjs控制器中調用editrc()函數?如何調用附加在div中的angularjs函數
用jQuery附加原始DOM會使角度指令編譯。您必須使用$compile
服務,通過該服務您將$compile
DOM首先將& DOM注入到DOM樹中。 $compile
是請求DOM的API函數(返回函數),然後您可以通過傳遞$scope
來針對特定的context
再次調用該函數。 $compile
API方法將負責編譯DOM &更新bindings
上的所有指令。
在以下情況下,id
值直接在$scope
內部不可用,您可以將其存儲在範圍變量中或通過字符串連接傳遞。
var compiledDom=$compile('<button class="btn btn-info" ng-click="editrc('+id+')">')($scope);
$("#showoption").append(compiledDom);
thnx ..它爲我工作 – Anil
@你可以接受和upvote答案,謝謝:) –
代替使用jQuery進行追加,請使用$compile
服務將其綁定到dom。就像這樣:
$scope.domEle = $compile('<button class="btn btn-info" ng-click="editrc(id)">')
,並在HTML調用是這樣的:
{{ domeEle }}
並在控制器定義editrc功能是這樣的:
$scope.editrc = function(val){
}
可以使用ng-bind-html指令綁定在html的動態地添加到模板。然而,你將不得不使用$ compile來編譯html,通過做$compile(<html>)
。編譯後的html中提到的任何表達式都可以調用您在控制器中提供的定義。
在控制器內使用範圍變量創建函數。 $ scope.editrc = function(id){}; –