angularjs-1

1.属性表达式

属性表达式计算是发生在作用域中的。Javascript默认是以window为作用域的。AngularJS要使用window作用域的话得用$window来指向全局window对象。 比如说,你使用window中定义的alert()方法,在AngularJS表达式中必须写成$window.alert()才行。这是为了防止意外进入全局作用域(各种bug的来源)而设计的。

2.AngularJS表达式 与Javascript表达式的比较

你可能会认为AngularJS视图中的表达式就是Javascript表达式,这种认识不完全对,因为AngularJS不会用Javascript的eval()函数去执行表达式。 不过除了以下几个需要区别的地方以外,你可以把AngularJS表达式看成是Javascript表达式: formatDate

  • 属性表达式:属性表达式是对应于当前的作用域的,不像Javascript对应的是全局window对象。
  • 允许未定义值:执行表达式时,AngularJS能够允许undefined或者null,不像Javascript会抛出一个异常。
  • 没有控制结构: 你不能在AngularJS表达式中使用“条件判断”、“循环”、“抛出异常”等控制结构。
  • 过滤器(类似unix中的管道操作符): 你可以通过过滤器链来传递表达式的结果。例如将日期对象转变成指定的阅读友好的格式。

3.在表达式中使用标准的Javascript,那么应该把它写成一个控制器的方法,然后在表达式中调用这个方法。

4.在Javascript中执行AngularJS表达式,你可以使用$eval()方法。

posted @ 2014-10-18 23:07  未来动力  阅读(208)  评论(0编辑  收藏  举报