日々精進

新しく学んだことを書き留めていきます

Angularのdirectiveから親画面にデータを渡す方法

これはちょっとトリッキーなので最初ハマりそう。 まずdirectiveの呼び出し側は以下のように書く。

<directive ng-repeat = "item in stuff" callback = "callback(data1, data2)"/>

directiveの定義では以下のようにしてcallback関数を受け取る。

scope { callback: '&' }

callbackを呼ぶ時は以下のように一つのオブジェクトに引数を入れて渡す。

scope.callback({data1:"some value", data2:"some value"});`

これ実装した時、callbackの名前が一致して無くて親画面にデータを渡せないバグでハマッた。。 HTMLに書く箇所はTypescriptの型チェックが効かないから気をつけないとね。。

参考: