私は、要素が可視になると警告をトリガーするためにぼんやりした$watch
を使用しています。要素のアンギュラウォッチが動作しない
var scrollElement = "#hiddenObj";
$scope.$watch(function() { return $(scrollElement).is(':visible') }, function() {
alert('hi);
});
問題は、ページのロードに、要素は、デフォルトでは非表示になっているが、アラートは、ページの負荷に示されていることである、とだけいくつかのリンクのクリック時に表示されます。
ちょうど私の仮定を確認するために、私はこのコードの前にブレークポイントを置いて、私のコンソールで、私はこのコードを実行:
$(scrollElement).is(':visible')
をし、それがfalse
を返します。これは、要素がページの読み込みに不可視であることを確認しました。なぜアラートがページの読み込みに表示されるのかわかりません。リンクをクリックすると、scrollElement
が実際に表示されますが、何も起こりません。
ここに何か不足しているものはありますか?
あなたの関数に ''(OLDVAL、newValに)を通過しなければならないと、ページの読み込みで、彼らに最初 – Phil
@Philを比較し、コンソールから確認されたように、古い値は ' '$(scrollElement).is( ':visible')'の式に対してfalseを返しますが、要素が表示されているときは、コンソールには 'true'が表示されます。理想的には、その段階でのみ警告が表示されます。その段階で 'watchExpression'が変更されるからです。 – anwartheravian