2

AngularJS ドキュメントには、Angular 式と JS 式 ( docs )の 4 つの違いのみがリストされています。

  1. 属性評価 (グローバル ウィンドウではなくスコープに対して);
  2. 許す (とundefinednull);
  3. 制御フロー ステートメントは許可されません。
  4. フィルター (式の評価の結果は、フィルター チェーンを介して渡すことができます)。

ただし、算術代入演算子も式内では機能しません。たとえば、"plus-equals"+=と "minus-equals"-=は、等号の後の定数でエラーを発生させます。

これらの代入演算子を式で許可するのに問題がある特定の理由はありますか? それとも、これは単に実装の優先順位の問題でしょうか?

インクリメントとデクリメントの角度固有の方法はおそらくありますか? 現在、人々は完全に入力するsomelongname = somelongname + xか、インクリメントとデクリメントをコントローラーの関数として定義することを余儀なくされているようです。他の算術代入演算子についても同様です。

回避策としてインクリメントとデクリメントに使用しているものの短い例。機能しますが、エレガントですか?

コントローラーで:

$scope.incr = function(number, constant){
    $scope[number] += constant;
};
$scope.decr = function(number, constant){
    $scope[number] -= constant;
};

HTML の場合:

<button class="btn" ng-disabled="currentPage == 0" ng-click="decr('currentPage', 1)">
4

1 に答える 1

1

これらの代入演算子を式で許可するのに問題がある特定の理由はありますか? それとも、これは単に実装の優先順位の問題でしょうか?

の組み合わせだと言えます。

  1. 実装の優先順位 ( v1.2 での式のサポートについて話している Brad と Igor のビデオを参照)
  2. 上記のコメントで@Sharondioが言及したこと:通常、ビューは式の場所ではなく、コントローラーです。
于 2013-07-24T14:04:59.987 に答える