如何使指令自动对焦自动对焦=“真”/“假”?

时间:2016-06-30 06:34:36

标签: angularjs

我在Angularjs中并不多,并且使用专注于特定元素的指令。它看起来如下:

appModule.directive('autoFocus', function ($timeout) {
    return {
        restrict: 'AC',
        link: function (scope, element, attrs) {
            $timeout(function () {
                element[0].focus();
            }, 0);
        }
    };
});

用法如下:

<button auto-focus class="uui-button lime-green btn" ng-click="copyToClipboard()">
    Copy
</button>

我想重新安排上面的指令以便能够写:auto-focus =“true”或auto-focus =“false”。

更新

我已经更新了如下所示的代码,但无论我写的是auto-focus =“true”还是auto-focus =“false”,它都无法使用焦点。

appModule.directive('autoFocus', function ($timeout) {
    return {
        restrict: 'AC',
        link: function (scope, element, attrs) {
            var hasFocus = attrs.autoFocus;
            if (hasFocus) {
                $timeout(function () {
                    element[0].focus();
                }, 0);
            }
        }
    };
});

1 个答案:

答案 0 :(得分:1)

您可以将该属性设置为true或false,并通过attrs.autoFocus函数<{1}}函数内的link访问该值

编辑:

appModule.directive('autoFocus', function ($timeout) {
    return {
        restrict: 'AC',
        link: function (scope, element, attrs) {
            var hasFocus = attrs.autoFocus;
            if (hasFocus ==="true") {
                $timeout(function () {
                    element[0].focus();
                }, 0);
            }
        }
    };
});