1
$scope.showtbleoption = function(id) 
{ 
    console.log(id); 
    $("#showoption").empty(); 
    $("#showoption").append('<button class="btn btn-info" ng-click="editrc(id)">'); 
}; 

anglejsコントローラのeditrc()関数の呼び出し方法は?anglejs関数を呼び出す方法

+0

コントローラ内のスコープ変数を使用して関数を作成します。 $ scope.editrc = function(id){}; –

答えて

3

生DOMにjQueryを追加すると、angleディレクティブがコンパイルされます。 $compileサービスを使用する必要があります。$compile 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); 
+0

thnx ..私のためのその仕事 – Anil

+0

@Anilあなたは受け入れて、答えをupvoteすることができた、ありがとう:) –

0

jQueryを使用して追加する代わりに、$compileサービスを使用してdomにバインドします。

$scope.domEle = $compile('<button class="btn btn-info" ng-click="editrc(id)">') 

と、このようなHTMLの呼び出しで:

{{ domeEle }} 

とコントローラで、次のようにはeditrc関数を定義します。

$scope.editrc = function(val){ 

} 
0

あなたがHTMLのをバインドするng-bind-htmlディレクティブを使用することができます。このような動的にテンプレートに追加します。あなたは$compile(<html>)を実行して$ compileを使ってhtmlをコンパイルする必要があります。コンパイルされたhtmlに記述されている式は、コントローラで指定した定義を呼び出すことができます。

関連する問題