输入自动对焦属性
输入自动对焦属性
我在代码中有这样的地方:
我希望也能像这样使用它:
甚至更好地模仿ng-style的实现方式:
在当前版本的AngularJS中存在吗?我在代码中发现了一个BOOLEAN_ATTR,它可以获取AngularJS支持的所有属性。我不想修改它,因为我担心更换版本时忘记更新。
admin 更改状态以发布 2023年5月19日
您可以使用内置的ngAttr属性绑定来完成此操作。
如果定义了 SOME_SCOPE_VARIABLE
(即使它的值为false
),会添加autofocus属性;如果未定义,则会删除它。因此,我强制将falsy值转换为undefined
。
$scope.SOME_SCOPE_VARIABLE = someVar || undefined;
更新: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 ); } }); } }; });
一如你的要求,它适用于作用域变量: