Javascript 角度:从js添加ngClick

Javascript 角度:从js添加ngClick,javascript,angularjs,addeventlistener,angularjs-ng-click,Javascript,Angularjs,Addeventlistener,Angularjs Ng Click,我正在为移动设备开发一个小型网页。 我想切换整个页面的点击监听器,如 $('.page').on('click',...); $('.page').off('click',...); 但在角度上。我不想在某些条件下使用ng Click,因为大多数情况下,Click不应该工作,它只是用于错误处理。是否可能,或者我需要使用纯js/jQuery 面板HTML: <div class="alert error" ng-show="errorMessage"> <div cla

我正在为移动设备开发一个小型网页。 我想切换整个页面的点击监听器,如

$('.page').on('click',...);
$('.page').off('click',...);
但在角度上。我不想在某些条件下使用
ng Click
,因为大多数情况下,Click不应该工作,它只是用于错误处理。是否可能,或者我需要使用纯js/jQuery

面板HTML:

<div class="alert error" ng-show="errorMessage">
    <div class="alert-text">{{ errorMessage }}</div>
</div>

{{errorMessage}}

您可以添加一个$scope变量,如果“允许”单击该变量,则可以跟踪该变量。然后你可以做这样的事情

<div ng-click="isDisabled || yourAction()"></div>

我创建了一个指令:
  • 它应与
    ngIf
    一起使用
  • ngIf
    应指作用域上的可分配变量
  • 例如,不要这样做:
    ngif='myFunc()'
    ngif='var1 | | var2'
这是一个扑克牌:

指令:

app.directive('errorBox', function($document, $parse){
  return {
    link: function(scope,elm,attrs) {
      var clickHandler = function(){
        scope.$apply(function(){
           $parse(attrs.ngIf).assign(scope.$parent,'')
        })
        $document.off('click', clickHandler);
      };

      $document.on('click', clickHandler)
    }
  }
});
<div ng-if="errorMessage" error-box class="alert error">
  <div class="alert-text">{{ errorMessage }}</div>
</div>
html:

app.directive('errorBox', function($document, $parse){
  return {
    link: function(scope,elm,attrs) {
      var clickHandler = function(){
        scope.$apply(function(){
           $parse(attrs.ngIf).assign(scope.$parent,'')
        })
        $document.off('click', clickHandler);
      };

      $document.on('click', clickHandler)
    }
  }
});
<div ng-if="errorMessage" error-box class="alert error">
  <div class="alert-text">{{ errorMessage }}</div>
</div>

{{errorMessage}}

在什么情况下需要绑定/解除绑定事件侦听器?如果发生错误,则会显示带有错误说明的面板,并单击“应绑定侦听器”。单击后,面板将消失,事件应解除绑定。因此,这是仅与此面板相关的内容。你能显示这个面板的标记吗?当然,如果它只与面板相关,我会点击这个面板。但我有一个要求,关闭面板后,点击页面中的任何地方只是显示您的面板html