2

AngularJS 文档仅列出了 Angular 表达式和 JS 表达式(文档)之间的四个区别:

  1. 属性评估(针对范围而不是全局窗口);
  2. 宽恕(对undefinednull);
  3. 不允许使用控制流语句;
  4. 过滤器(表达式评估的结果可以通过过滤器链传递)。

但是算术赋值运算符也不能在表达式中工作。例如,“plus-equals”+=和“minus-equals”-=在等号之后的常量上会产生错误。

这些赋值运算符在表达式中允许存在问题是否有特殊原因?或者这仅仅是实施优先级的问题?

是否存在特定于 Angular 的递增和递减方式?目前,人们似乎只能somelongname = somelongname + x在控制器中输入 full 或将增量和减量定义为函数。其他算术赋值运算符也是如此。

我用来增加和减少的一个简短示例作为解决方法。它有效,但它优雅吗?

在控制器中:

$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. 实施优先级(参见Brad 和 Igor 视频讨论v1.2 中的表达支持)和
  2. @Sharondio 在上面的评论中提到了什么:视图通常不是表达式的地方——控制器是。
于 2013-07-24T14:04:59.987 回答