こんにちはそこに私が働いている、この「確認できる」ボタンディレクティブ、「確認できる」ディレクティブをトリガーするangular.js:オリジナルのdomからディレクティブのdomにngclickを渡す方法は?
HTMLコードを持って
<span confirmable ng-click='users.splice($index,1)'></span>
ディレクティブ:(CoffeeScriptの)
angular.module('buttons',[])
.directive 'confirmable',() ->
template: """
<button class='btn btn-mini btn-danger'>
Destroy
</button>
"""
replace: yes
だから私はこのディレクティブで生成された見てみたいと思います最終結果は
<button class='btn btn-mini btn-danger' ng-click='users.splice($index,1)'>
Destroy
</button>
です3210
は、これまでのところ私はディレクティブ
angular.module('buttons',[])
.directive 'confirmable',() ->
template: """
<button class='btn btn-mini btn-danger'>
Destroy
</button>
"""
replace: yes
link: (scope, el, attrs) -> <---------- linking function
$(el).attr 'ng-click', attrs.ngClick
内のリンク機能で動作するようにそれを得た。しかし、私は再びディレクティブのドキュメントを通じて行ってきた、と=、@、&事業者が、私とスコープのプロパティを見つけましたもし私が必要なものであるかどうかは本当に分かりません。それから私はまだ理解する必要があるこの転写プロパティがありますが、現時点では役に立たないようです。だから私のリンク機能は今のところトリックですが、角度がより洗練された解決策を提供するかどうかを尋ねるべきだと思っていました。
ありがとうございます!あなたのディレクティブ内から親スコープからメソッドを呼びたいようですが、私に聞こえる
私は周りのこのような機能を渡すこと、非常に便利です見ることができます。しかし興味がありますが、foo()に引数を渡すことはできますか?それはどのようにディレクティブに流されますか? –
はい、引数を渡すことができます。一般的には、ディレクティブから親に「細かく」流れますが、それ以外の方法ではありません。親の関数への参照を呼び出す前にディレクティブで何らかの処理が必要な場合は、ディレクティブのコントローラ宣言の別のスコープ関数でその呼び出しをラップするだけです。 –
Hmm。 'ng-click'はよく知られているので、再利用することはお勧めしませんか?これはあなたの例では機能しますが、あなたのディレクティブに 'replace:true'オプションを使うと、それは壊れます。なぜ私は考えていない。 = [ – Langdon