我正在尝试将自动对焦添加到ng-repeat
中的第一个元素<div class="border-row" {{$first?focus-autofocus:''}} ng-repeat="item in itemsList" >
但这不起作用。我正在使用https://github.com/obogo/angular-focusmanager。我该怎么办呢?
答案 0 :(得分:0)
如果你的itemList中有一个列表,那么
<div class="border-row" ng-repeat="item in itemsList" >
<input ng-model="item.id" type="text" custom-autofocus="$index == 0" >
为此创建一个指令:
.directive('customAutofocus', function() {
return{
restrict: 'A',
link: function(scope, element, attrs){
scope.$watch(function(){
return scope.$eval(attrs.customAutofocus);
},function (newValue){
if (newValue == true){
element[0].focus();
}
});
}
};
})
;
答案 1 :(得分:0)
你必须使用$ index属性。$ index对于第一个元素是0。 其中一个解决方案可能是:
<div class="border-row" ng-repeat="item in itemsList" >
<div ng-if="$index==0" focus-autofocus>
</div></div>
答案 2 :(得分:0)
插值在标签内的任何位置都不起作用。它必须是属性的值。
我不知道那个图书馆,但不应该这样做吗?
<div class="border-row" focus-autofocus ng-repeat="item in itemsList" >
或者:
<div class="border-row" focus-autofocus ng-repeat="item in itemsList track by $index" >