6

開発者ガイドによると、Angular 式の内部からブラウザ ウィンドウにアクセスできるはず$windowです。

名前のデフォルトがグローバル ウィンドウ プロパティである JavaScript とは異なり、Angular 式は $window を使用してグローバル ウィンドウ オブジェクトを参照する必要があります。たとえば、window で定義されている alert() を式で呼び出したい場合は、$window.alert() を使用する必要があります。

$windowただし、 で評価された式からアクセスできないようです$scope.$eval。コンソールにログアウトすると、次のような出力が得られます。

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())どちらも機能しません。

ここで何が欠けていますか?

4

1 に答える 1

7

$scope.$evalに対して評価さ$scopeれるため、スコープ メンバーに $window サービスを割り当てた場合にのみ評価が機能します。

$scope.$window = $window;  
console.log($scope.$eval('$window'));
于 2014-01-08T14:29:21.173 に答える