我想在局部视图中将焦点设置到其中一个输入框 喜欢。
包括这个
第一次加载页面时,此功能正常。但是当我改变部分时,自动对焦并不起作用。
我认为是因为页面加载的自动对焦工作如何在这里工作
答案 0 :(得分:2)
我不知道如何解决页面重新加载的问题,但我认为我们可以在这里找到另一种解决方案。我写了一个小指令,有条件地将注意力集中在一个输入元素上。
以下是代码:
function SetFocusDirective($parse) {
return {
restrict: 'A',
link: function (scope, element, attrs) {
var model = $parse(attrs.setFocus);
scope.$watch(model, function (value) {
if (value === true) {
element[0].focus();
}
});
element.bind('blur', function () {
scope.$apply(model.assign(scope, false));
});
}
};
}
SetFocusDirective.$inject = ['$parse'];
app.directive('setFocus', SetFocusDirective);
以下是您可以使用它的方法:
<input type="text" ng-model="firstName" set-focus="autofocusFirstName">
autofocusFirstName
是$scope
变量,其中应该有一个布尔值。
因此,每当你的部分加载时,它们内部的所有指令都会被链接并完成它们的工作。如果你最终使用这个指令,你应该能够实现你想要的目标。