Angular:从js添加ngClick

时间:2014-01-30 13:24:03

标签: javascript angularjs addeventlistener angularjs-ng-click

我正在使用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>

2 个答案:

答案 0 :(得分:2)

我创建了一个指令:

  • 应与ngIf
  • 一起使用
  • ngIf应引用范围
  • 上的可分配变量
  • 例如,请勿执行此操作:ng-if='myFunc()' ng-if='var1 || var2'

这是一个吸虫: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>

答案 1 :(得分:0)

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

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