相关疑难解决方法(0)

jQuery自动完成+ AngularJS的问题

我在我的页面上使用AjgularJS并且想要添加一个字段以使用来自jqueryui的自动完成,并且自动完成不会触发ajax调用.

我已经在没有角度的页面上测试了脚本(ng-app和ng-controller)并且它运行良好,但是当我将脚本放在带有angularjs的页面上时它会停止工作.

任何的想法?

jquery脚本:

$(function () {

    $('#txtProduct').autocomplete({
        source: function (request, response) {

            alert(request.term);

        },
        minLength: 3,
        select: function (event, ui) {

        }
    });

});
Run Code Online (Sandbox Code Playgroud)
  • 有趣的是:当我在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>
Run Code Online (Sandbox Code Playgroud)

角度脚本

<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>
Run Code Online (Sandbox Code Playgroud)

jquery jquery-ui jquery-autocomplete angularjs

19
推荐指数
2
解决办法
3万
查看次数