Angular - 如何在ng-click处理程序范围函数之后获取angular指令?

时间:2016-09-29 00:18:10

标签: javascript jquery angularjs angularjs-ng-click

Scenraio

我对Angular很新,并且有以下问题。

我想触发指令来改变颜色并在按钮上添加图像。我无法在我的Angular Directive中获得第一个触发此更改的if条件。

问题

我想根据ng-click处理程序的结果使指令采取行动。即使我的调试器显示正在调用该指令,我也没有得到第一个if条件。

问题

1)我需要做些什么才能让它发挥作用?

2)在处理指令之前,是否需要考虑是否未调用ng-click?

HTML

<button class="email-reset-btn"  type="button" ng-click="resetEmailLink();" emailReset="changeBtn();" name="button">Email Reset Link</button>

范围级别功能

var emailResetValidation = function () {
  if($('#email').val().trim() == "")
  {
    $(".email-reset-btn").removeClass("email-active-green");
  }
}

指令

.directive('emailReset', [function(){
      return {
        link: function(scope, elem, attrs) {
          elem.bind("click", function(){
            if(!elem.hasClass('email-active-green')) {  <--- Here is where I want the debugger to enter to change the button's HTML
               elem.html("<div class='email-sent-placeholder'><img width='15px' src='./resources/icons/icon_check@2x.png'/></div>&nbsp;<div class='email-reset-button-text'>Link Sent</div>");
            }
            else {
               elem.html("Email Reset Link");
            }
          })
        }
      });

1 个答案:

答案 0 :(得分:0)

如果您想使用$prodcuts = DB::table('product') ->leftJoin('product_names', 'product.id', '=', 'product_names.objectId ') ->get(); 指令。您应该像这样设置HTML中的emailReset

email-reset

我无法理解 <button class="email-reset-btn" type="button" ng-click="resetEmailLink();" email-reset="changeBtn();" name="button">Email Reset Link</button> 的含义?

尝试查看此plunker