0

運が悪かったのですが、代理人と一緒にディレクティブを実装しようとして4時間費やしました。

使用事例:

「フィルター」というディレクティブがあります。

ユーザーがフィルターをアクティブ化/非アクティブ化すると、親スコープが画面上のデータを更新したい場合があります。

親を実行させる前に、内部データ構造にいくつかの内部変更を加えて、新しいフィルター状態を親に渡したいと思います。

私がやろうとしていることの簡略化されたバージョンを表示するためにjsfiddelを作成しました。

http://jsfiddle.net/concept/zADNy/ これがディレクティブの私のスコープです

scope : {
    onFilterChanged : '&'
},

これが中間ハンドラーです

function notifyParent() {
    scope.onFilterChanged({filters:scope.filters});
}
4

1 に答える 1

1

ディレクティブデリゲートは小文字である必要があります(そのステートメントが間違っている場合は誰かが私を訂正してください、もしそうなら、なぜキャメルケースバージョンが機能しなかったのですか)

さて、何時間も遊んだり、読んだり、他の人のコードを見たりした後、何らかの理由でデリゲート関数を小文字にする必要があることがわかりました。

結果の修正は次のとおりです

http://jsfiddle.net/concept/zADNy/4/

これがディレクティブの私のスコープです

scope : {
    onfilterchanged : '&'
},

これが中間ハンドラーです

function notifyParent() {
    scope.onfilterchanged({filters:scope.filters});
}
于 2013-03-11T17:00:51.500 に答える