输入自动对焦属性

21 浏览
0 Comments

输入自动对焦属性

我在代码中有这样的地方:


我希望也能像这样使用它:


甚至更好地模仿ng-style的实现方式:


在当前版本的AngularJS中存在吗?我在代码中发现了一个BOOLEAN_ATTR,它可以获取AngularJS支持的所有属性。我不想修改它,因为我担心更换版本时忘记更新。

admin 更改状态以发布 2023年5月19日
0
0 Comments

您可以使用内置的ngAttr属性绑定来完成此操作。


如果定义了 SOME_SCOPE_VARIABLE(即使它的值为false),会添加autofocus属性;如果未定义,则会删除它。因此,我强制将falsy值转换为undefined

$scope.SOME_SCOPE_VARIABLE = someVar || undefined;

0
0 Comments

更新:AngularJS现在有一个ngFocus指令,在焦点上评估表达式,但是出于完整性的考虑,我在这里提到它。


当前版本的AngularJS没有焦点指令,但在路线图中。巧合的是,昨天在邮件列表上我们正在谈论这个,并且我想出了以下内容:

angular.module('ng').directive('ngFocus', function($timeout) {
    return {
        link: function ( scope, element, attrs ) {
            scope.$watch( attrs.ngFocus, function ( val ) {
                if ( angular.isDefined( val ) && val ) {
                    $timeout( function () { element[0].focus(); } );
                }
            }, true);
            element.bind('blur', function () {
                if ( angular.isDefined( attrs.ngFocusLost ) ) {
                    scope.$apply( attrs.ngFocusLost );
                }
            });
        }
    };
});

一如你的要求,它适用于作用域变量:


这里是示例: http://jsfiddle.net/ANfJZ/39/

0