callback
分離スコープで指定された属性を使用するフォーム ディレクティブがあります。
scope: { callback: '&' }
これは の中にあるng-repeat
ので、渡す式にid
はオブジェクトの がコールバック関数への引数として含まれます。
<directive ng-repeat = "item in stuff" callback = "callback(item.id)"/>
ディレクティブの処理が完了すると、$scope.callback()
コントローラー関数から呼び出されます。ほとんどの場合、これで問題ありません。やりたいことはこれだけですが、別の引数を内部から追加したい場合もありdirective
ます。
$scope.callback(arg2)
this:を許可する角度式はありcallback
ますarguments = [item.id, arg2]
か?
そうでない場合、これを行うための最もきちんとした方法は何ですか?
これが機能することがわかりました:
<directive
ng-repeat = "item in stuff"
callback = "callback"
callback-arg="item.id"/>
と
scope { callback: '=', callbackArg: '=' }
およびディレクティブの呼び出し
$scope.callback.apply(null, [$scope.callbackArg].concat([arg2, arg3]) );
しかし、私はそれが特にきちんとしているとは思わず、isolate スコープに余分なものを入れる必要があります。
より良い方法はありますか?
Plunker プレイグラウンドはこちら(コンソールを開いてください)。