我使用angularjs,我创建了一个正常的输入字段,如下所示:
<input type="text" style="border: none" ng-model="model" >
我想要做以下事情:
如果有人在输入字段中单击,我想调用示例方法A.然后他在此字段中写入文本,如果该人在页面中的某处单击以便输入字段不再聚焦,则应调用方法B.这是否可以使用angularjs?如果是的话,我该怎么做? ng-focus仅在输入事件处激活,但不在输出处激活..
我希望锁定一些东西,方法A只将值设置为true,方法B将相同的值设置为false。但我必须知道输入字段何时处于活动状态,何时不存在。
答案 0 :(得分:51)
<input type="text" style="border: none" ng-model="model" ng-focus="A()" ng-blur="B()">
在旁注中,使用css类而不是内联样式..:)
或者只是用参数调用相同的方法并设置值acc: -
<input type="text" style="border: none" ng-model="model" ng-focus="A(true)" ng-blur="A(false)">
答案 1 :(得分:5)
如果您正在使用可能希望应用于整个应用程序中的字段的功能,则可以将其置于指令中。 下面是一个根据字段的焦点或模糊添加和删除css类的示例:
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);
});
}
};
});
答案 2 :(得分:3)
您可以将方法B绑定到angular的 ng-blur 指令,以检测输入何时失去焦点
<input type='text' ng-focus='methodA()' ng-blur='methodB()' ng-model='model'>