0

カスタム ディレクティブを使用したコードで奇妙な動作が発生しました。リンク関数は複数回呼び出されますが、例として、サード パーティ ライブラリ (サンプル マップ) を初期化する場合、この動作によってライブラリが壊れます。

link: function(scope) {
    alert("invoked");
}

http://jsfiddle.net/dYs8L/1/

正しいコードで更新されたjsfiddle

http://jsfiddle.net/dYs8L/2/

4

1 に答える 1

1

設計どおりに機能しています... ng-repeat は、基本的に、コレクション内のすべてのアイテムに対して分離されたスコープを持つマークアップの新しいコピーを作成します。何かを一度初期化する必要がある場合は、別の場所で行う必要があります。このリソースをサービスに入れることを検討できます。これにより、ng-repeat によって出力されるすべての要素が同じインスタンスを使用できるようになります。

于 2014-03-01T14:52:44.853 に答える