2016-09-22 8 views
0

を$のwindow.printを露光する際:

$scope.print = $window.print; 

をしかし、これは例外が発生:

角度.js:13642例外メッセージ:私はそれを動作させるためにそうように、別の関数スルー印刷呼び出す必要が不正呼び出し

$scope.print = printFn; 
function printFn() { $window.print(); } 

なぜ私は最初の選択肢を使用できないのですか? は角1.5.5

答えて

1

を実行することは、そうでない場合は証明しない限り、すべてのオブジェクトのメソッドがthisに依存していると仮定しても安全ですので、それは別のオブジェクトのメソッドとして割り当てられる前に、この方法は、そのコンテキストにバインドする必要があります。

window.printは、Chromeの場合、不適切なthisという文脈ではなく、Illegal invocationを送信するだけです。

代わりに、ラッパー関数の

、それがあってもよい

$scope.print = $window.print.bind($window); 

又は

$scope.print = angular.bind($window, $window.print); 
関連する問題