javascript - que - Evento de foco de campo de entrada de Angularjs?
ng-cloak not working (3)
Yo uso angularjs y he creado un campo de entrada normal como este:
<input type="text" style="border: none" ng-model="model" >
quiero hacer lo siguiente:
si alguien hace clic en el campo de entrada, quiero llamar al método A. Luego escribe texto en este campo y si la persona hace clic en algún lugar de mi página para que el campo de entrada ya no esté enfocado debe llamar al método B. ¿es posible? con angularjs? Si es así, ¿cómo puedo hacer eso? ng-focus solo está activo en el evento de entrada pero no en la salida.
Quiero bloquear algo con esto, el método A establece solo un valor en verdadero y el método B establece el mismo valor en falso. pero debo saber cuándo el campo de entrada está activo y cuándo no.
Puede vincular el método B a la directiva angular ng-blur para detectar cuándo una entrada pierde el foco
<input type=''text'' ng-focus=''methodA()'' ng-blur=''methodB()'' ng-model=''model''>
Si está utilizando una funcionalidad que puede desear aplicar a los campos de su aplicación, podría incluirla en una directiva. Aquí hay un ejemplo que agrega y elimina una clase css en función del enfoque o desenfoque de un campo:
angular.module(''myApp'').directive(''inputFocus'', function () {
var FOCUS_CLASS = ''input-focused'';
return {
restrict: ''A'',
priority: 1,
require: ''ngModel'',
link: function (scope, element, attrs, ctrl) {
element.bind(''focus'',function () {
element.parent().addClass(FOCUS_CLASS);
}).bind(''blur'', function () {
element.parent().removeClass(FOCUS_CLASS);
});
}
};
});
Usted está mirando ng-focus
y ng-blur
.
<input type="text" style="border: none" ng-model="model" ng-focus="A()" ng-blur="B()">
En una nota al margen, use clases de CSS en lugar de estilos en línea ... :)
O simplemente llame al mismo método con argumento y establezca el valor como: -
<input type="text" style="border: none" ng-model="model" ng-focus="A(true)" ng-blur="A(false)">