AngularJS 文档仅列出了 Angular 表达式和 JS 表达式(文档)之间的四个区别:
- 属性评估(针对范围而不是全局窗口);
- 宽恕(对
undefined
和null
); - 不允许使用控制流语句;
- 过滤器(表达式评估的结果可以通过过滤器链传递)。
但是算术赋值运算符也不能在表达式中工作。例如,“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)">