77

Angularアプリは、イベントng-click()ではなく属性を使用します。onclick

どうしてこれなの?

4

2 に答える 2

113

onclickAngularは属性の意味を変更しません。Angular式を取得するための並列ng-click属性を追加します。Angularを使用している場合でも、単純な古いJavaScriptコードを使用します。onclick

実際には、クリックハンドラーで実行しているのは、Angularスコープ内のいくつかの変数を変更すること、またはいくつかの変数を変更するAngularスコープ内の関数を呼び出すことであると想定します。JavaScriptコードからそれを行うには(あなたが入れるもののようにonclick)、たくさんのステップが必要です

  • スコープへの参照を取得します
  • 変数を割り当てるか、関数を呼び出します
  • scope.$apply変更した変数の更新を監視しているものが通知されるように呼び出します

これは次のようになります。

<a onclick="var $scope = angular.element(event.target).scope(); $scope.yourVar = 42; $scope.$apply()">Go</a>

割り当てのAngular式を使用するとng-click、そのほとんどすべてが暗黙的に行われます。

<a ng-click="yourVar = 42">Go</a>
于 2013-11-28T21:15:01.877 に答える
74

ng-clickは角度式を保持します。角度式は、ng-click属性を持つ要素またはその要素の祖先にバインドされているAngularスコープのコンテキストで評価されます。

Angular式言語にはフロー制御ステートメントが含まれておらず、変数を宣言したり関数を定義したりすることはできません。これらの制限は、テンプレートが変数にアクセスし、コントローラーまたはディレクティブによって使用可能になった関数のみを実行できることを意味します。

于 2012-08-10T15:34:12.770 に答える