4
根據developer guide我應該能夠從$window
的角度表達式訪問瀏覽器窗口。從角度表達式訪問窗口
與JavaScript不同,其中名稱默認爲全局窗口屬性,Angular表達式必須使用$ window來引用全局窗口對象。例如,如果要調用窗口中定義的alert(),則在表達式中必須使用$ window.alert()。
但是我似乎無法從$scope.$eval
評估的表達式中訪問$window
。 下面是一些輸出登錄到控制檯時,我得到:
console.log($window); // the Window object as expected
console.log($scope.$eval('$window')); // undefined
console.log($scope.$eval('1+1')); // 2
console.log($scope.$eval('scopeVar')); // 'abc'
該控制器具有$window
作爲一個依賴。我可以從表達式訪問範圍變量和其他服務,但不能訪問$window
,因此$scope.$eval($window.alert())
也不起作用。
我在這裏錯過了什麼?
這個答案是正確的,但似乎AngularJS的新版本(我是1.2 .4)由於安全原因不允許從表達式訪問窗口對象,並且你得到這個[error](http://docs.angularjs.org/error/$parse:isecwindow?p0=$window.alert()如果你嘗試的話,那麼我不能說文檔是非常一致的......然後我將這個警報調用包裝在一個控制器函數中,並使用表達式。 – tamacun
You are right @tamacun –