ng-include解决之前的指令触发

时间:2014-12-10 22:22:59

标签: angularjs angularjs-directive angularjs-ng-include

我写了一个指令,专注于动态表单中的第一个输入。我使用ng-include来包含包含表单输入的HTML文件。当应用程序最初加载时,焦点不起作用。如果我导航到其他页面,它工作正常。经过一些研究,我发现在执行指令时尚未加载HTML。

我目前的解决方案是使用$ timeout并将延迟设置为750毫秒。有没有更好的方法来延迟指令,直到HTML加载完成?我并不是将延迟设置为看似随意的值的忠实粉丝。我也尝试过ng-cloak,想想也许它会掩盖指令,直到ng-include得到解决,但它没有用。

指令代码:

angular.module('focusInput-directive', [])
    .directive('focusInput', ['$timeout', function( $timeout ) {
        return {
            restrict: "A",
            link: function (scope, element) {
                $timeout(function () {
                    var field = element[0][0];
                    field.focus();
                }, 750);
            }
        }
    }]);

此指令在我的表单上,ng-include在HTML表单中。

谢谢!

0 个答案:

没有答案