ページで AjgularJS を使用していて、jqueryui からオートコンプリートを使用するフィールドを追加したいのですが、オートコンプリートが ajax 呼び出しを起動しません。
angular(ng-appおよびng-controller)のないページでスクリプトをテストしましたが、うまく機能しますが、angularjsを使用してページにスクリプトを配置すると、機能しなくなります。
何か案が?
jquery スクリプト:
$(function () {
$('#txtProduct').autocomplete({
source: function (request, response) {
alert(request.term);
},
minLength: 3,
select: function (event, ui) {
}
});
});
- 興味深いメモ: Chrome インスペクターでスクリプトを呼び出すと、オートコンプリートが機能し始めます!!!
- バージョン: AngularJS: 1.0.2 - JqueryUI: 1.9.0
結論: jQueryUI のオートコンプリート ウィジェットは、例として AngularJS のカスタム ディレクティブ内から初期化する必要があります。
マークアップ
<div ng-app="TestApp">
<h2>index</h2>
<div ng-controller="TestCtrl">
<input type="text" auto-complete>ddd</input>
</div>
</div>
Angular スクリプト
<script type="text/javascript">
var app = angular.module('TestApp', []);
function TestCtrl($scope) { }
app.directive('autoComplete', function () {
return function postLink(scope, iElement, iAttrs) {
$(function () {
$(iElement).autocomplete({
source: function (req, resp) {
alert(req.term);
}
});
});
}
});
</script>