私は、Angularを使用して動的に読み込まれたページを持っています。本質的に、Angularは、コントローラのデータを取得して属性を取り込むために、バックエンドに対して$http.get
要求を行います。AngularとJQueryの実行時間
たとえば、私は$http.get('/_car_data')
を呼び出し、返されたJSONはDealership
のDealership.cars
というコントローラに保存されます。
Angularを使用して、すべてDealership.cars
を入力ボックスとしてHTMLページに出力します。
私の問題は、各入力にjquery 'autocomplete'を追加したいということです。これは、ページと角度が完全にレンダリングされた後、Googleデベロッパーコンソールで操作すると美しく機能します。ただし、スクリプトがHTMLにリンクされた後、およびHTMLの本文の後にこの機能を両方含めると、機能しません。このオートコンプリート機能を$(document).ready
で囲んでも機能しません。
これは、Google開発者向けコンソールで実行すると完全に機能しますが、外部リンクされたjsとhtmlボディの後には含まれません。
$(document).ready(function() {
var availableTags = [];
$.ajax({
url: '_available_cars',
data: {},
method: 'GET',
dataType: 'json',
success: function(data) {
availableCars = data['cars'];
$(".carchoice").autocomplete({
source: availableCars
});
},
error: function(jqXHR, textStatus, errorThrown, data) {
console.log(textStatus, errorThrown);
}
});
});
だから私の質問は、どのように私はすべてのhtmlまで待たないとアンギュラ作成され、動的にロードされたコンテンツは、私のjqueryの文を実行するためにレンダリング終了しますか?
anglejsの方法で行う必要があります。つまり、指示に従います。 –
質問と思考が間違っています。ディレクティブでプラグインを呼び出す必要があります。要素が存在することが保証されています – charlietfl