Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 某些赋值运算符不使用';我不能用AngularJS表达式。。为什么不呢?_Javascript_Angularjs_Assignment Operator - Fatal编程技术网

Javascript 某些赋值运算符不使用';我不能用AngularJS表达式。。为什么不呢?

Javascript 某些赋值运算符不使用';我不能用AngularJS表达式。。为什么不呢?,javascript,angularjs,assignment-operator,Javascript,Angularjs,Assignment Operator,AngularJS文档只列出了Angular表达式和JS表达式()之间的四个区别: 属性评估(针对范围而非全局窗口) 原谅(对未定义的和空的) 不允许使用控制流语句 过滤器(表达式计算的结果可以通过过滤器链传递) 但是算术赋值运算符在表达式中也不起作用。例如,“加号等于”+=和“减号等于”-=会在等号后面的常量上引发错误 这些赋值运算符在表达式中允许存在问题,有什么特别的原因吗?或者这仅仅是一个实施优先事项的问题 是否有一种特定于角度的递增和递减方式?目前,人们似乎只能键入完整的somelong

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

  • 属性评估(针对范围而非全局窗口)
  • 原谅(对
    未定义的
    空的
    
    
  • 不允许使用控制流语句
  • 过滤器(表达式计算的结果可以通过过滤器链传递)
  • 但是算术赋值运算符在表达式中也不起作用。例如,“加号等于”
    +=
    和“减号等于”
    -=
    会在等号后面的常量上引发错误

    这些赋值运算符在表达式中允许存在问题,有什么特别的原因吗?或者这仅仅是一个实施优先事项的问题

    是否有一种特定于角度的递增和递减方式?目前,人们似乎只能键入完整的
    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)">
    
    
    
    这些赋值运算符在表达式中允许存在问题,有什么特别的原因吗?或者这仅仅是一个实施优先事项的问题

    我会说这是一个组合

  • 实施优先级(见v1.2)和
  • @Sharondio在上面的评论中提到了什么:视图通常不是表达式的位置——控制器是

  • 您似乎指的是角度视图表达式(您可以在实际视图中的{}标记中执行的操作)。Angular允许在视图中发生一些事情,但更喜欢在控制器、指令或服务中发生大部分繁重的工作。也许如果您解释了您试图在视图表达式中实现什么,我们可以给出更好的答案。文档中的术语非常清楚:“表达式是类似JavaScript的代码片段,通常放在绑定中,例如
    {{expression}
    。表达式由$parse服务处理。”我试图实现的是通过
    ng click=“…”
    增加和减少
    $scope
    中的数字变量。如果我理解正确,在
    {…}
    中给出的表达式和作为指令值(如of
    ng click
    )的表达式的计算结果是类似的。