angularjs - 在自定义指令中使用 ng-blur

标签 angularjs angular-directive

我在自定义指令中使用 ng-blur 时遇到问题。我想要的是能够创建一个组件,可以处理发送到指令上的 ng-blur 属性的任何类型的函数。

这是指令示例:

<az-dir ng-blur="change()" lid="test" ng-model="obj.test"></az-dir>

Javascript 指令

app.directive('azDir', azDir);
function azDir() {
  return {
    restrict: 'E',
    scope: {
      ngModel: '=',
      ngBlur: '=',
      lid: '@'
    },
    templateUrl: 'directive.html',
    replace: true,
    require: 'ngModel'
  };
}

简单的 Angular Controller :

var app = angular.module('ashtest', []);

app.controller('TopCtrl', ['$scope',
  function($scope) {

    $scope.obj = {
      test: "Ashkan"
    };

    $scope.change = function() {
      $scope.obj.test = "changedThis";
    }


  }
]);

My Plunker Sample

最佳答案

ngBlur: '&',

解释:

  1. “@”(文本绑定(bind)/单向绑定(bind))
  2. "="(直接模型绑定(bind)/双向绑定(bind))
  3. “&”(行为绑定(bind)/方法绑定(bind))

What is the difference between '@' and '=' in directive scope in AngularJS?

关于angularjs - 在自定义指令中使用 ng-blur,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33798351/

相关文章:

angularjs - 从不同的模块访问指令

javascript - 获取 ng Repeat 中第一行的第一个值

angularjs - 如何将 Passport 与 Angular Node 应用程序一起使用?

javascript - AngularJS ng-重复 : show data only when data is not false

javascript - select 标签中的 onchange 不调用函数

angular - 在指令中动态添加 *ngIf

javascript - 如何重构 Angular 依赖注入(inject)以进行串联和缩小?

angular - 不能在属性选择器中使用 mat-tab

angular - 如何在 Angular 中的一个元素上应用多个模板绑定(bind)

javascript - 将指令隔离范围绑定(bind)传递到其 Controller `this` 上下文 (AngularJS V1.6)