在AngularJS表达式中使用变量?

时间:2015-06-14 12:16:23

标签: javascript angularjs

我是Angular的新手,但我想知道我能否在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>

我有办法吗?

2 个答案:

答案 0 :(得分:4)

不,您不能在Angular表达式中使用全局变量(或函数)。 Angular表达式只是属性,字符串也不是Javascript代码。角度解析器($parse服务,sourse code)获取这些属性,解析它们并对Angular应用程序的范围对象进行求值。因此,为了在Angular表达式中使用任何内容,必须在相应的范围对象上定义它。

答案 1 :(得分:0)

你不应该。如果你这样做,你将杀死Angular的整个目的。并且不知道你是怎么做的。 我仍然在这里为你制作了一个Plunker。毕竟,如果在控制器代码之前定义了全局JavaScript变量,则可以从控制器内部进行访问。毕竟这是所有的JavaScript

http://plnkr.co/edit/LiwvNd4Nf5lW0HUsSyyq?p=preview

HTML中的

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

并在控制器中

// in the controller
    $scope.Foo=function(){
      return $scope.Page + x;
    }