2016-07-18 12 views
0

angularjs指示文でイベントリスナー関数を生成する方法は?angularjsディレクティブでイベントリスナー関数を生成する方法は?

指令:

app.directive('myDirective',() => { 
    return { 
     scope: { 
      myDict: '=', 
     }, 
     templateUrl: 'directives/my-directive', 
    }; 
}); 

HTML:

<!-- my-directive.html --> 

<li ng-repeat="(key, value) in myDict"> 
    <!-- Will not work --> 
    <a onclick="function_written_in_frontend({{key}})">{{value}}</a> 
</li> 

それを使用します。このような何かのために

<my-directive myDict="{'a': 1, 'b': 2, 'c': 3}"></my-directive> 

私が望んでいることは、それが発生する可能性があるということです。

<li> 
    <a onclick="function_written_in_frontend('a')">1</a> 
    <a onclick="function_written_in_frontend('b')">2</a> 
    <a onclick="function_written_in_frontend('c')">3</a> 
</li> 

しかし、私はできません。 ng-clickはここでの解決策ではないかもしれません。

Thxです。


更新:

私はこのような私の指令を更新した場合:

app.directive('myDirective',() => { 
    return { 
     scope: { 
      myDict: '=', 
     }, 
     controller: function ($scope, $element) { 
      $scope.function_written_in_frontend = function(mykey) { 
       console.log(mykey); 
      } 
     }, 
     templateUrl: 'directives/my-directive', 
    }; 
}); 

そして、それは私を与える:

{{key}} 
{{key}} 
{{key}} 
{{key}} 
+0

「しかし私はできません」どういう意味ですか?また、AngularJSでonclickイベントハンドラを追加するには、 'ng-click'が好ましい方法です。 –

+0

* "ng-clickはここの解決策ではないかもしれません" * ...どうしてですか? 'function_written_in_frontend'とはどういう意味ですか?角度を含むすべてのクライアント側がフロントエンドです。とにかくネイティブスクリプトでイベント処理を行うためにインライン 'onclick'を使うのは好きではありません – charlietfl

+0

' 'のような別のスクリプトで書かれた関数を呼び出すことはできますか? – Adam

答えて

0

ng-click代わりのonclick

012を試してみてください
関連する問題