Javascript 在AngularJS表达式中使用变量?

Javascript 在AngularJS表达式中使用变量?,javascript,angularjs,Javascript,Angularjs,我不熟悉AngularJS,但我想知道我是否能够在AngularJS表达式中使用JS变量(不确定是否称为表达式)。 我能证明的最简单的方法是: <code> <script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script> <script> var number = 10; </sc

我不熟悉AngularJS,但我想知道我是否能够在AngularJS表达式中使用JS变量(不确定是否称为表达式)。 我能证明的最简单的方法是:

<code>
    <script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
    <script>
        var number = 10;
    </script>
    <div ng-app="">
        <p>My expression: {{ 5 + number}}</p>
    </div>
</code>

var数=10;
我的表达式:{5+number}


有办法吗?

没有,不能在角度表达式中使用全局变量(或函数)。角度表达式只是属性,字符串也是属性,而不是Javascript代码。Angular parser(服务)接受这些属性,解析它们并根据Angular应用程序的scope对象求值。因此,为了在角度表达式中使用任何东西,必须在相应的范围对象上定义它

你不应该这样做。如果你这样做的话,你将扼杀这一切。你怎么说都不行。 我还是在这里为你做了一件好事。毕竟,如果全局JavaScript变量是在控制器代码之前定义的,则可以从控制器内部访问它。毕竟,它都是JavaScript

在HTML中

<script>
  var x = 7;
</script>

为什么控制器/服务等外部存在变量?不,不可能。无法完成。但若你们真的很绝望,你们可以在窗口对象中有“number”,在你们的控制器中可以做一些类似$scope.number=window.number的事情,然后使用它。不过我不会这么说的。谢谢你。但是你能告诉我如何做下面的事情吗。在中,我需要能够使用不同的字符串(例如示例中使用的“GoPro”)。因此,当单击某个产品时,该产品的特定内容将显示“{products[0].GoPro.Description}”。非常感谢您的帮助
// in the controller
    $scope.Foo=function(){
      return $scope.Page + x;
    }