각도로 포커스 요소를 설정하는 방법에 대한 예제를 찾은 후 대부분이 변수를 사용하여 관찰 한 다음 포커스를 설정하고, 대부분은 포커스를 설정하려는 각 필드에 대해 하나의 다른 변수를 사용하는 것을 확인했습니다. 필드가 많은 양식에서 다양한 변수를 의미합니다.
jquery 방식을 염두에두고 각도 방식으로하고 싶었으므로 요소의 ID를 사용하여 모든 기능에 초점을 맞춘 솔루션을 만들었으므로 각도가 매우 새롭기 때문에 다음과 같은 의견을 듣고 싶습니다. 그 방법이 옳습니다. 문제가 있습니다. 제가 각도에서 더 나은 방법으로이 작업을 수행하는 데 도움이 될 수있는 모든 것이 있습니다.
기본적으로 지시문 또는 기본값의 focusElement로 사용자가 정의한 범위 값을 감시하는 지시문을 만들고 해당 값이 요소의 ID와 같으면 해당 요소가 포커스를 설정합니다.
angular.module('appnamehere')
.directive('myFocus', function () {
return {
restrict: 'A',
link: function postLink(scope, element, attrs) {
if (attrs.myFocus == "") {
attrs.myFocus = "focusElement";
}
scope.$watch(attrs.myFocus, function(value) {
if(value == attrs.id) {
element[0].focus();
}
});
element.on("blur", function() {
scope[attrs.myFocus] = "";
scope.$apply();
})
}
};
});
어떤 이유로 포커스를 받아야하는 입력은 이런 식으로 수행됩니다.
<input my-focus id="input1" type="text" />
포커스를 설정할 요소는 다음과 같습니다.
<a href="" ng-click="clickButton()" >Set focus</a>
그리고 포커스를 설정하는 예제 함수 :
$scope.clickButton = function() {
$scope.focusElement = "input1";
}
각도에서 좋은 솔루션입니까? 내 가난한 경험으로 아직 보지 못하는 문제가 있습니까?