我是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>
我有办法吗?
答案 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;
}