0
ユーザーがスクロールしたときにアクションを実行しようとしていますが、コントローラのスコープにアクセスできません。
私のコードは次のとおりです。
(function() {
angular.module("myApp")
.controller("MyController", ['$window', function($window){
this.sidebarFixed = false;
angular.element($window).bind("scroll", function() {
console.log(this.sidebarFixed);
});
}]);
})();
これの出力はundefined
です。どのように機能内のthis
にアクセスできますか?
おかげで、JavaScriptで
this
を使用して共通の問題です。ただし、値を変更するとビューでは更新されません。どうすれば修正できますか? – rj93私のコントローラに$ scopeを注入し、 '$ scope。$ apply()'を呼び出してビューを更新しました。これは正しい方法ですか? – rj93
スコープを更新した場合にイベントが角度コンテキスト外で発生するため、ダイジェストを実行するにはangleを通知する必要があります。ほとんどの場合、 '$ apply()'を使うことができますが、スクロールイベントは '$ timeout'を使うのが一番良いでしょう。 – charlietfl