問題タブ [angularjs-digest]
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.
angularjs - AngularJS : $scope.$apply() の呼び出し時にエラー $digest already in progress を回避
angularでアプリケーションを構築して以来、自分のページをスコープに合わせて手動で更新する必要があることがわかりました。
$apply()
これを行う唯一の方法は、コントローラーとディレクティブのスコープから呼び出すことです。これに関する問題は、次のようなエラーをコンソールにスローし続けることです。
エラー: $digest は既に進行中です
このエラーを回避する方法、または同じことを別の方法で達成する方法を知っている人はいますか?
javascript - Angular:ディレクティブからモデルを更新
私はここにフィドルを持っています:http://jsfiddle.net/KdkKE/44/
私がやりたいのは、「トグル」コンポーネントを作成することです。基本的にはカスタムチェックボックスですが、コントローラーのブール値にバインドされているtrueまたはfalseの場合に変更されるhtmlを使用します。
ユーザーがトグルをクリックすると、モデルが更新され、ディレクティブのビューが変更されます。ディレクティブドキュメントhttp://docs.angularjs.org/guide/directiveの最後にある例と似ていますが、起動時に正しくなるように状態がバインドされます。
-
angularjs - Angular: $evalAsync が $applyAsync と呼ばれないのはなぜですか?
スコープに関するAngularの初心者の質問(docs here)。
$eval
スコープのコンテキストで式を実行します。$apply
基本的には電話してからの発送$eval
となり$digest
ます。- なぜ
$evalAsync
ですか?$digest
_$digest
本当は と呼ぶべきだと思われますね。$
eval
Async
$
apply
Async
私は初心者です - 何が欠けていますか?
javascript - Angular.js の深いオブジェクト解決
これは少し広い質問なので、簡潔にするよう努めます。
アプリケーションのインポート手順に取り組んでいるときに、次のデータ構造に出くわしました。
親のリストは 1 つの API 呼び出しによって提供され、その親の子のリストは、各親 (1+n) ごとに追加の API 呼び出しによって提供され、オブジェクトにimported
何かが存在するかどうかに基づいて値が変化します。localChildren
プラットフォームに既にインポートされているもの。foreignParent
、foreignChild
およびlocalChild
は、3 つの異なるサービスによって提供される異なる構造を持つ 3 つの異なるオブジェクトです。
問題は、このコントローラ アクションに含まれる 3 つのサービスを使用して 1 つの大きなオブジェクトの配列を構築し、単純に次のように反復する方がよいかどうかですng-repeat
。
その場合、サービス内のオブジェクトのリストが変更された場合は、ウォッチャーをセットアップしてハッシュを調べ、インポートされた値を再計算しlocalChildren
、さらにオブジェクトを追跡する必要があります。
imported
2 番目のオプションは、およびプロパティに関数を割り当てるように思われますchildren
。これは、ダイジェスト サイクルごとに計算されると思います。
より単純な 3 番目のオプションは、関数プロパティのないネイティブ オブジェクトを持ち、コントローラーに関数を配置することです。
現在、コントローラーは多かれ少なかれ次のようになっています。
残念ながら、これは意図したとおりには機能しませんが、それは私の側のデータの問題によるものです。私はこれについて何人かの友人と話しましたが、これを行うための広く受け入れられている正しい方法が何であるかを誰も知りませんでした.
複数のサービスで構成されるこれらの複雑なネストされたリストの正しい方法論、またはリストが何回消化されているか、関数の結果の変更がどのように伝播されるかを確認する方法がどれなのか、私にはわかりません。場合によっては、明示的$scope.$watch
または強制$scope.$digest
に . 適切な比較を行うのに十分なほど複雑なサンプル アプリを実際に見つけたことがありません。