1. 程式人生 > >Angularjs表示式與JavaScript表示式的區別

Angularjs表示式與JavaScript表示式的區別

ng的表示式除了下面幾點之外非常類似於js表示式

  1. 執行環境。js表示式的執行環境是在全域性作用域中,即window物件。ng表示式的執行環境則是在一個scope物件中執行。
  2. Forgiving(報錯?):在js中嘗試給一個未宣告的屬性賦值會丟擲引用異常(ReferenceError)或者型別異常(TypeError),而在ng中,則會返回null或者underfined。因為有瀏覽器(window)這個全域性物件,所以用js賦值平常並不會報出異常,除非是嚴格模式,而ng則有一個scope物件,所以也是不會出問題的。
  3. 不能用流程控制語句。不能夠在ng表示式中使用條件判斷,迴圈和異常。
  4. 不能宣告方法。不能在ng表示式中宣告方法,就算是在ng-init指令中也不行。
  5. 不能夠建立正則表示式的例項。
  6. 不能使用new操作符來建立物件。
  7. 不能使用‘,’以及‘void’操作符。
  8. 在ng表示式中可以使用過濾器。

如果要執行一些比較複雜的javascript表示式,應該封裝成$scope的一個屬性在控制器當中,並在檢視中呼叫。