Setelah mencari contoh bagaimana mengatur fokus elemen dengan sudut, saya melihat bahwa kebanyakan dari mereka menggunakan beberapa variabel untuk diperhatikan kemudian mengatur fokus, dan kebanyakan dari mereka menggunakan satu variabel berbeda untuk setiap bidang yang ingin mereka tetapkan fokus. Dalam bentuk, dengan banyak bidang, yang menyiratkan banyak variabel berbeda.
Dengan cara jquery dalam pikiran, tetapi ingin melakukan itu dengan cara sudut, saya membuat solusi yang kami tetapkan fokus dalam fungsi apa pun menggunakan id elemen, jadi, karena saya sangat baru dalam sudut, saya ingin mendapatkan beberapa pendapat jika jalan itu benar, punya masalah, apa pun, apa pun yang bisa membantu saya melakukan ini dengan cara yang lebih baik secara bersudut.
Pada dasarnya, saya membuat direktif yang melihat nilai cakupan yang ditentukan oleh pengguna dengan direktif, atau fokusElement default, dan ketika nilai itu sama dengan id elemen, elemen itu mengatur fokus itu sendiri.
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();
})
}
};
});
Masukan yang perlu mendapatkan fokus karena alasan tertentu, akan dilakukan dengan cara ini
<input my-focus id="input1" type="text" />
Di sini setiap elemen untuk mengatur fokus:
<a href="" ng-click="clickButton()" >Set focus</a>
Dan contoh fungsi yang mengatur fokus:
$scope.clickButton = function() {
$scope.focusElement = "input1";
}
Apakah itu solusi sudut yang bagus? Apakah ada masalah yang dengan pengalaman buruk saya, saya belum melihatnya?