【问题标题】:Angularjs with jquery auto complete not working带有jquery自动完成的Angularjs不起作用
【发布时间】:2013-09-25 10:35:34
【问题描述】:

我在过去的 5 个小时里一直在尝试,但没有成功... 这是代码..

在视图中:

<input type="text" ng-model="foo" auto-complete/>Foo = {{foo}}

在控制器中:

    myapp.directive('autoComplete', function(autoCompleteDataService) {
    return {
        restrict: 'A',
        link: function(scope, elem, attr, ctrl) {
            elem.autocomplete({
                source: autoCompleteDataService.getSource(), //from your service
                select: function( event, ui ) {
                    scope.foo= ui.item.label;
                    scope.$apply;
                },
                change:function (event, ui) {
                    if (ui.item === null) {
                        scope.foo = null;
                    }
                },
                minLength: 2
            });
        }
    };
});

    myapp.factory('autoCompleteDataService', [function() {
    return {
        getSource: function() {
            return ['apples', 'oranges', 'bananas'];
        }
    }
}]);

问题来了……

选中的项目正在进入输入框,但输入框旁边的 foo 变量没有更新。

错在哪里。

请建议...

【问题讨论】:

  • 尝试将scope.$apply;更改为scope.$apply();
  • 哇.. 成功了...我可能早点来 SOF.. 谢谢 CodeHater..
  • 如何将此评论标记为答案?
  • 我已将我的评论添加为下面的答案
  • 最好将这两行更改为:scope.$apply(function() { scope.foo = ui.item.label; });,这样scope.foo 分配将在角度上下文中执行。这样 Angular 可以管理任何错误。

标签: javascript jquery angularjs angularjs-directive jquery-ui-autocomplete


【解决方案1】:

改变

scope.$apply; 

scope.$apply(function(){
    scope.foo= ui.item.label;
});

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2013-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-02
  • 1970-01-01
  • 2015-06-08
  • 2014-04-28
相关资源
最近更新 更多