当我在第一个输入文本字段中打开一个表单内的页面时,我想创建一个焦点指令。这是指令
app.directive("getFocus", function() {
return {
restrict: 'AC',
link: function(scope, element){
console.log("focus!");
element.focus();
}
}
});
并在我的html输入中
<input id="ss" data-ng-model="item.value" type="text" data-ng-class="{'get-focus': $first}">
<input id="tt" type="text" data-ng-model="item.value" data-ng-class="{'get-focus': $first}">
我使用ng-class
因为是一个动态表单创建循环json,我不知道首先创建了哪个输入。该指令似乎无效。事实上,console.log没有出现在控制台中..出了什么问题?
答案 0 :(得分:1)
我有这样的问题,我最终得到了这个指令
angular.module('myApp').directive('autofocusIf', function($timeout) {
return {
restrict: 'A',
scope: {
autofocusIf: '&'
},
link: function($scope, $element) {
$scope.$watch('autofocusIf', function(shouldFocus) {
if (shouldFocus()) {
$timeout(function() {
$element[0].focus();
});
} else {
$timeout(function() {
$element[0].blur();
});
}
});
}
};
})
然后在html中
<div ng-repeat="repeat in repeats">
<input type="text" autofocus-if="$first" ng-model="myModel" />
</div>