3

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

$('.page').on('click',...);
$('.page').off('click',...);

但以 Angular 的方式。而且我不想在ng-Click某些条件下使用,因为大多数时候点击不应该工作,它只是用于错误处理。有可能还是我需要使用纯 js/jQuery?

面板 HTML:

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

2 回答 2

2

我创建了一个指令:

  • 它应该与ngIf.
  • ngIf应该引用范围上的可分配变量
  • 例如不要这样做:ng-if='myFunc()' ng-if='var1 || var2'

这是一个plunker:http ://plnkr.co/edit/fmNH2PbRrruRqGFYiui1?p=preview

指示:

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)
    }
  }
});

html:

<div ng-if="errorMessage" error-box class="alert error">
  <div class="alert-text">{{ errorMessage }}</div>
</div>
于 2014-01-30T14:22:14.563 回答
0

您可以添加一个 $scope 变量来跟踪它是否“允许”单击。然后你可以做这样的事情

<div ng-click="isDisabled || yourAction()"></div>
于 2014-01-30T14:21:47.767 回答