使用AngularJS过滤器进行Jquery自动完成

时间:2015-04-15 09:58:12

标签: jquery angularjs jquery-ui autocomplete

我无法让AngularJS过滤器与Jquery自动完成功能一起正常工作。键入时过滤器工作正常,但如果从自动完成列表中选择项目,则在按下另一个键之前不会更新结果。

Jquery自动完成:

$( "#searchTeam" ).autocomplete({
            source: teamList,
            change: function(event,ui)
            {
                if (ui.item==null)
                {
                    $("#createPeopleForm_team").val('');
                    $("#createPeopleForm_team").focus();
                    angular.element($(this)).triggerHandler('input')
                }
            },
            minLength: 0
        }).focus(function(){
            //Use the below line instead of triggering keydown
            $(this).autocomplete("search");
        });
    });

并且过滤器的输入如下所示:

<input id="searchTeam" ng-model="query.team"><br/>

1 个答案:

答案 0 :(得分:0)

$( "#searchTeam" ).autocomplete({
            source: teamList,
            change: function(event,ui)
            {
                if (ui.item==null)
                {
                    $("#createPeopleForm_team").val('');
                    $("#createPeopleForm_team").focus();
                    angular.element($(this)).triggerHandler('input')
                }
            },
            minLength: 0
        }).focus(function(){
            //Use the below line instead of triggering keydown
            $(this).autocomplete("search");
$scope.$apply();//might be you missing this
        });
    });

可能需要使用$ scope手动更新绑定。$ apply。试试吧