ドロップダウン (選択) を外部 jquery プラグインにリンクするディレクティブを作成したいと考えています。
これは、ディレクティブの templateUrl ビューのコードです。
<select multiple="multiple">
<option data-ng-repeat="(key,label in opts)"
value="{{key}}">{{label}}</option>
</select>
これは私のディレクティブのリンク機能です:
link: function(scope, element, attrs)
{
console.log( scope.opts );
console.log( $(element).html() );
$(element).chosen(); //call external plugin
}
ここでの問題は、何らかの理由で、link
関数が呼び出されたときに、選択に ng-repeat を使用したオプションがまだ入力されていないことです。そのため、jquery プラグインを呼び出すと、後で選択にオプションが設定されていても、空のドロップダウンが表示されます。
の出力にconsole.log( scope.opts );
は、オプション付きのオブジェクトが正しく表示されますが、console.log( $(element).html() );
以下のみが表示されます。
<!-- ngRepeat: (key,label) in opts -->
ng-repeat が select に入力されたときに通知を受け取る方法はありますか? その場合にのみ外部プラグインを呼び出すことができますか?