2016-09-29 3 views
0

ScenraioAngular - ng-clickハンドラスコープ機能の後にangleディレクティブをトリガする方法?

私はAngularにはかなり新しく、次の問題があります。

色を変更してボタンに画像を追加するよう指示を出したい。私はAngular Directiveでこの変更を引き起こす最初のif条件を得ることができません。

私はNG-クリックハンドラからの結果に基づいて指示テイクアクションを作りたい

問題。私のデバッガは、ディレクティブが呼び出されていることを示していますが、私は最初の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/[email protected]'/></div>&nbsp;<div class='email-reset-button-text'>Link Sent</div>"); 
      } 
      else { 
       elem.html("Email Reset Link"); 
      } 
      }) 
     } 
     }); 
+0

を見てみては? –

+0

#emailはidが "email"のテキスト入力です。 – Vahe

+0

各ボタンが表示されるときに論理を取得できません。また、スコープモデルのチェックとして最も基本的なこととして、angularjsとjQueryを混在させています。私はplunkrを追加しました。これはQIからのフォークです。あなたはanglejsをすごく小さくする小さな変更を見ることができましたか?https://plnkr.co/edit/2fq3ndcN0XbOtiBDV4Kx?p=preview –

答えて

0

あなたは01を使用する場合directive.youこの

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

ようなあなたのHTMLにemail-resetを設定しなければならないと私は何emailReset = "changeBtn()"手段を理解することはできませんか?

あなたは#emailのHTMLを共有してくださいでした。このplunker

関連する問題