問題タブ [angularjs-watch]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
175 参照

angularjs - angularjs :このエラーが何を意味するのか分かりますか?

こんにちは、私はこのエラーが発生しています:

https://docs.angularjs.org/error/ $rootScope/infdig?p0=10&p1=%5B%5B%22fn:%20parentValueWatch;%20newVal:%201;%20oldVal:%20undefined%22,%22inputValue;%20newVal :%201;%20oldVal:%20undefined%22%5D,%5B%22fn:%20parentValueWatch;%20newVal:%20undefined;%20oldVal:%201%22,%22inputValue;%20newVal:%20undefined;%20oldVal:%201 %22%5D,%5B%22fn:%20parentValueWatch;%20newVal:%201;%20oldVal:%20undefined%22,%22inputValue;%20newVal:%201;%20oldVal:%20undefined%22%5D,%5B%22fn :%20parentValueWatch;%20newVal:%20undefined;%20oldVal:%201%22,%22inputValue;%20newVal:%20undefined;%20oldVal:%201%22%5D,%5B%22fn:%20parentValueWatch;%20newVal:%201 ;%20oldVal:%20undefined%22,%22inputValue;%20newVal:%201;%20oldVal:%20undefined%22%5D%5D

エラー: $rootScope:infdig 無限 $digest ループ

10 回の $digest() 反復に達しました。中止します!最後の 5 回の反復で発生したウォッチャー: [["fn: parentValueWatch; newVal: 1; oldVal: undefined","inputValue; newVal: 1; oldVal: undefined"],["fn: parentValueWatch; newVal: undefined; oldVal: 1 ","inputValue; newVal: 未定義; oldVal: 1"],["fn: parentValueWatch; newVal: 1; oldVal: 未定義","inputValue; newVal: 1; oldVal: 未定義"],["fn: parentValueWatch; newVal : 未定義; oldVal: 1","inputValue; newVal: 未定義; oldVal: 1"],["fn: parentValueWatch; newVal: 1; oldVal: 未定義","inputValue; newVal: 1; oldVal: 未定義"]]

どのウォッチャーでこの問題を認識しているのか、またはなぜ突然エラーがスローされるのかを認識するのに苦労しています。昨日までは正常に動作していました。

どんな助けでも大歓迎です。

0 投票する
1 に答える
58 参照

javascript - $watch が解雇されていない

ScrollSpy の AngularJS 実装(元の記事はこちら) のコードを使用していますが、ナビゲーションが動的に作成されたときに問題が発生しましたが、ナビゲーションが静的に作成されたときには機能します。

したがってscrollSpy、のリストを監視するディレクティブがありspiesます。spiesリストは基本的に、ユーザーがページをスクロールするときに強調表示するナビゲーション要素のリストです 。そのようにコントローラのメソッドをspies介して追加されますaddSpyscrollSpy

関数は常に呼び出されaddSpyますが、スパイを動的に追加すると、そのリストの $watch は起動されず、ナビゲーション項目が静的に作成されたときに起動されます。

$watch が起動されない理由を理解できる人はいますか? 追加しようとし$scope.$applyましたが、既にダイジェスト サイクル内にあると表示されました。

0 投票する
1 に答える
1119 参照

javascript - 未定義の変数を選択するAngular $watchコマンド

angularを使用して無線入力を繰り返すHTMLコードがあります。

現在持っている機能を示す plunkr を作成しました。

http://plnkr.co/edit/n5OZVlbiwToHsuvGN3QI

繰り返しコードは、トップ レベルのスコープにキャプチャする必要がある変数にバインドされます。($parent.selectedType および $parent.selectedSpecies)

コードは HTML ドキュメントで正しく表示されますが、ng-model からのデータ バインディングは機能しません。

したがって、次のように $scope.$watch コマンドを設定しました。

typeName 変数の変更を監視し、変更されたら $scope.selectedType をラジオ ボタンで選択したものに設定します。

ただし、このコードを実行しようとすると、 $scope.$watch 部分が型定義の直後にあるにもかかわらず、「型が未定義です」というメッセージが表示され続けます。

$watch しようとすると型が未定義になるのはなぜですか?

編集:問題はより深刻でした-それは、 $scope.type.selected.forEach() が認識される関数ではないという事実に由来します。forEach() は関数である必要がありますが、何か不足していますか?

0 投票する
1 に答える
327 参照

angularjs - 角度バインディングはどのように発生しますか?

以下は、angularJS でバインディングがどのように発生するかについての私の理解です。専門家がフィードバック/コメントを提供できれば素晴らしいと思います..

angularJS が {{myVar}} (および {{anothervar}}) に遭遇するとすぐに、(変数ごとに) ウォッチャーが内部的に作成されます。このウォッチャーは、コントローラー 'ctrlA' の $scope 用に作成されます。

関数が $timeout や ng-click などで呼び出されるたびに、それらは $scope.apply() 内に埋め込まれます。関数が実行された後 (一部のスコープ変数が変更される可能性があります)、$apply は rootScope でダイジェストを呼び出します。これにより、アプリ全体の変数が UI と同期されます。

$scope.digest が呼び出されると、そのスコープのすべてのウォッチャーを反復処理します。次に、変数の現在の値を取得し、変更されたかどうかを確認します。変更された場合は、ウォッチャー ハンドラーを呼び出します (新しい値を反映するように html を変更します!)。

ここで質問があります。angularJSストアには、ウォッチャーへの参照とそのウォッチャーの現在の値を含む、すべてのスコープ用のある種のキーマップ(またはデータ構造)がありますか?? 何かのようなもの:

0 投票する
1 に答える
374 参照

javascript - $scope.user={pwd1:''} のように使用しても $watch がモーダルで機能しない

私のプランカーのリンクを参照してください: http://plnkr.co/edit/0vOjw0?p=preview

index.html

registration.html

script.js

私が直面している問題は、パスワード テキスト ボックスに書き込むと、$watch がモーダル インスタンス コントローラーで呼び出されないことです。しかし、同じ単純なコントローラーに書き込むと機能します。助けてください!!

0 投票する
3 に答える
5849 参照

javascript - Angular でウォッチャーと見なされるものは何ですか?

Angularで「ウォッチャー」と見なされるものは何ですか? ウォッチャー自体がウォッチャーの唯一のタイプですか、それともウォッチャーなどの他の Angular 構成要素ngModelですか?

それとも全体像を見逃していますか?たとえば、ウォッチャーはディレクティブを有効にするのが好きngModelですか?

更新:ウォッチャーがいつ存在するかを知る方法はありますか? テストでは、scope.$digest() を呼び出すタイミングを知りたい

0 投票する
1 に答える
287 参照

javascript - $scope.$watch ディレクティブによって変更された値をキャッチしない

私のディレクティブはスパンにフォーカスを与え、boolean値を割り当てます。つまり、shifttab を押すたびに focusToSpan を true に割り当てますが、この変更はコントローラーテンプレートに反映されません。以下のように focusToSpan 変数の $scope.$watch でチェックしました

指令

コントローラ

ディレクティブでコントローラー変数に加​​えられた変更が、コントローラーとテンプレートにどのように反映されるかを知っていますか。ありがとう、バラジ。

0 投票する
1 に答える
586 参照

angularjs - ウォッチに設定した変数を誰が変更したかに関する情報を取得するにはどうすればよいですか (Angular)

$scope.$watch('data', function(){});

関数はいつdata変更されるかを開始しますが、変更の原因となる関数を知りたい場合。