如何控制Angular指令的评估顺序?

时间:2013-10-01 16:48:28

标签: javascript angularjs

我有这个指令 - 它启用Angular上的jQuery Autocomplete

var myModule = angular.module('MyModule', []).directive('autoComplete', function($timeout) {
return function(scope, iElement, iAttrs) {
        iElement.autocomplete({
            source: scope[iAttrs.uiItems],
            select: function() {
                $timeout(function() {
                  iElement.trigger('input');
                }, 0);
            }
        });
   };
});

我有另一个功能

$scope.copy_row = function(index) {
    alert($scope.options[index].my_value);
}

这由ng-change指令触发。

问题是 - 我希望自动完成指令在 ng-change指令之前触发

在IE以外的所有浏览器上都能正常工作。在IE ng-change中,在自动完成之前触发。我不希望这样。

如何修改此代码,以便在 ng-change指令之前,angular会触发自动完成指令?它与设置优先级有关,但我不知道如何。

1 个答案:

答案 0 :(得分:2)

您希望在自定义指令上设置优先级。将调用$ compile,遍历DOM并获取所有指令。然后,它使用优先级来对指令进行排序,然后将它们链接起来。

http://www.ng-newsletter.com/posts/directives.html

http://docs.angularjs.org/guide/directive