0

作为标题,当我尝试使用 angularjs 指令应用自动完成时。插件本身可以工作,但是指令初始化后的其余代码,它不起作用。并且没有显示任何错误。

这里是在线测试。

http://jsbin.com/ufihip/4

4

1 回答 1

1

这对我来说似乎是一个黑客,但我认为这可能没问题。这是我在 SO 上问另一个问题时发现的(实际上是 charlieftl 的提示)。

当您在指令中进行 DOM 操作时,最好在所有内容都初始化后进行(有点像readyjQuery 中的回调)。为此,您可以使用setTimeoutor $timeout(由于某种原因在您的示例中不起作用)。

这是对您的指令的修复:

myApp.directive('uicomplete', function($http) {
    return function(scope, element, attrs) {
        setTimeout(function() {
            element.autocomplete({
                source: ["ActionScript","AppleScript","Asp"]
            });
        }, 1);
    }
});

在代码中:http: //jsbin.com/ufihip/7/

于 2013-03-25T04:11:07.303 回答