問題タブ [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 - ゲーム ループとダイジェスト サイクルを統合する Angular サービス
Angular で作成した 2D JavaScript ゲーム エンジンを統合しています。このゲームは、エンジンが宇宙環境のシミュレーションを処理し、Angular が宇宙ステーションとの商品交換などのメニューを処理する宇宙ゲームです。
Angular サービスは、2 つのコンテキスト間のインターフェイスとして機能します。たとえば、ゲームがメッセージを記録する必要がある場合、 を呼び出しますlogServiceInstance.logDebug("Some message");
。ゲーム キャンバスをオーバーレイする HTML div ($scope.logs で ng-repeat を使用) にログ メッセージをフィードする ConsoleController があります。
ゲーム エンジンは Angular の外部でサービスを更新しているため、Angular はこれらのログの一部を認識していないため、すべてのログ メソッド (logInfo、logError、logDebug など) が logService でこれを呼び出します。ゲームから作成されたログは、ダイジェストをトリガーする 2 番目の引数として「true」を渡します。
ConsoleController が一貫してログ メッセージを取得できません。HTML 表示ではログが表示されませんが、javascript コンソールには表示されます。さらに、ダイジェスト内でダイジェストをトリガーしているというエラーが表示されます。
質問:
- 他のソースからのダイジェストが既に進行中であるかどうかを知るにはどうすればよいですか?
- サービスは、2 つのフレームワーク間で状態の受け渡しを統一するための最良の方法のように思えますが、これは悪いパターンですか? もしそうなら、なぜですか?
前もってありがとう、Angular 達人。
注: ゲーム エンジンはhttps://bitbucket.org/profexorgeek/frostflake-js-game-engine/です。
angularjs - 一意の ID を出力する角度フィルターを作成する方法
質問は非常に単純です。入力を一意の ID に連結する angularJs フィルターを作成するにはどうすればよいでしょうか。これは、HTML ID を生成したり、ng-repeat 内の要素のグループに一意の属性値を定義したりするのに非常に役立ちます。
注: ID は「グローバルに」一意である必要があり、Angular ng-repeat は$index
役に立たなくなります。
さて、おそらく頭に浮かぶ解決策は次のようなものです。
myModule.filter('uniqueId', function(){
var idCounter = 0;
return function(input) {
return (input || '') + (++idCounter);
};
});
そしてあなたのHTMLに次のようなものを書きます:
<div id="{{groupName | uniqueId}}">
課題は、angular がダイジェスト ループに陥ることです。これは、評価groupName | uniqueId
によって同じ値が得られることはなく、スコープが安定しないことを意味します。
最後に一つだけ。angular v1.2.27 を使用します。これは、angular 1.3 の新しい::
(つまり、1 回限りのバインド) 演算子を使用できないことを意味します。
javascript - Angularjs: mouseenter/mouseleave イベントのダーティ チェックを防止する
Angular では、そのようなイベントのダーティ チェックを防ぐ方法はありますか?
実際、これらのハンドラーのコードはモデルを変更しないため、頻繁にトリガーされるこれらのイベントに対して Angular にダーティ チェックを実行させたくありません。
javascript - 同じ関数にバインドされた Angular 要素。各ダイジェストで複数の呼び出しを避ける
以下を考えると:
isEngineOn は、サーバーから受信した websocket メッセージで変化します。
繰り返しの各値ごとに、各ダイジェスト中に isEngineOn を 4 回評価しないようにする方法はありますか? 変数の初期化のようなものか何か?
angularjs - ng-translate エラー ハンドラから $http.post() を実行しようとすると、「10 回の $digets() 反復に達しました」
サーバーから翻訳を取得する独自のカスタム ローダーを使用して、angular translateを使用して Web サイトのローカリゼーションを処理しています。サーバー側には、不足している翻訳キーを処理するロジックがあり、何か (フォールバック言語からの翻訳またはキー自体) を返し、キーが要求されたことをシステムに報告します (したがって、翻訳 UI に表示されます)。サイトの他の場所)。現在、クライアント側で同様のものを構築するのに苦労しています。
には、以下を使用して、コンソールにキーがないことをログアウトするように正常に構成され$translateProvider
たメソッドがあります。useMissingTranslationHandler(factory)
ただし、サーバーへのコメントを外し、キーが見つからないことを通知すると、ページは-POST
の 14394 行目でハングします。ここで、angular.js
throw e
e.message
[$rootScope:infdig] 10 回の $digest() 反復に達しました。中止します!最後の 5 回の繰り返しで発生したウォッチャー: []
これを回避するためにさまざまなことを試しました。たとえば、への呼び出しをラップする$http.post()
か$timeout
、$rootScope.$apply
無駄にします。それでも同じエラー メッセージが表示されます。
$http.post()
このエラーを発生させずにここからの通話をスケジュールする方法はありますか? もしそうなら、どのように?
angularjs - 更新されたモデルでビューが更新されない
モデルが変更されたときに角度ビューが更新されません。ディレクティブの「onblur」イベントでモデルが変更されています。
inputNgEl.bind('blur', function () {
})
モデルがディレクティブに渡され、ディレクティブがモデルのコンテンツを表示しています。
以下のプランクを見つけてください。 http://plnkr.co/edit/Ku5yOyWsa1fjnLIs2Eu3?p=preview
ここに何が欠けているか教えてください。ありがとう。
angularjs - angular jsでcookieStoreが定義されていないというエラーを解決するにはどうすればよいですか?
ここで storeAreaInCookie をクリックすると、都市の緯度と経度が得られます。これらの結果は、Cookie に保存する必要があり、Web サイトで使用したい場所で使用する必要があります。しかし、このコードを使用しようとすると、 cookie とそのコンソールで、cookie ストアが定義されていないと言っています。この問題を解決するにはどうすればよいですか?