一尘不染

AngularJS:扩展输入指令

angularjs

我想知道是否有可能扩展Angular的输入指令?我想将一些侦听器附加到页面上的所有输入字段。我认为您可以使用来装饰现有模块$provide.decorate,但我不知道如何使用指令(更确切地说是输入指令)来完成此操作。

那么,谁能将我推向正确的方向呢?一些例子?

编辑

到目前为止,这是我的指令:

angular.module('onFocusBlur').
directive('onFocusBlur', ["$rootScope", function($rootScope) {
  return {
    restrict: "A",
    link: function(scope, elem, attrs) {
        elem.bind('focus',function() {
          scope.$apply(function() {
            $rootScope[attrs.onFocusBlur] = true;
          });
        });
        elem.bind('blur',function() {
          scope.$apply(function() {
            $rootScope[attrs.onFocusBlur] = false;
          });
        });
    }
  };
}]);

在我看来,可以将其添加到输入字段中,如下所示:

<input type="email" ng-model="email" on-focus-blur="repositionNavBar">

缺点是,对于每个输入字段,我都必须在代码中手动附加此侦听器。因此,更改现有的输入指令以包括此侦听器将很有用。


阅读 232

收藏
2020-07-04

共1个答案

一尘不染

您可以轻松扩展任何指令-包括输入指令。
是将类添加到指令的快速示例。

2020-07-04