問題タブ [angular-services]
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 サービス/コントローラーが angular-leaflet-directive マップを更新しない
Angular-Leaflet-Directive と $resource を使用して Web サービスを呼び出す 2 つの異なる Angular サービスからのデータを使用してマップを生成しようとしています。これらのサービスは、緯度/経度の値を含む JSON メッセージを返し、地図上にマーカーを設定します。
ただし、サービスからデータを使用するためのディレクティブを取得できません。
サービスがスコープを更新しているため、正常に動作していることがわかります。コントローラーに値をハードコードすると、マップ マーカーが正しくレンダリングされます (たとえば、以下の「中心」を参照)。私がやりたいことは、この例に非常に似ています
これが私のコードです:
コントローラ:
私が見つけたのは、私の2つのサービスが返され、スコープが値で更新されますが、これはangular-leaflet-directiveに渡されないということです.
ディレクティブに関するAngularのドキュメントは、ディレクティブの次のコードが子スコープを親スコープにリンクして、両方が更新されることを示唆しています。
しかし、それは私にはうまくいかないようです。ただし、angular-leaflet-directive パスの例では、これが許可されているように見え (マーカーの追加、マーカーの変更などを行うことができます)、マップはリアルタイムで更新されます。
サービスが再開されたら、マップにマーカーを表示するにはどうすればよいですか?
これについて Stackoverflow にも同様の質問がありますが、これらの質問に対する答えは、ディレクティブ内にサービス呼び出しを含めることです。コントローラーは、フォーム送信の処理など、単なるサービス呼び出しよりも多くの機能を提供しており、同じデータへのアクセスを必要とするため、これを行いたくありません。
rest - AngularJS REST非同期呼び出しがデータを返さない
アプリケーションで、REST API 呼び出しを行うための角度サービスを作成しています。
私が以下のようにしていること:
非同期呼び出しと同様$q.all(newsCall, tweetsCall).then
に、サービスを呼び出しているときにニュースで null 配列を取得しています。
dataService.getNewsAndTweets()
$q が後でデータを返す非同期呼び出しであることを理解している限り、コントローラー内で呼び出して null 配列を取得しています。
この問題を解決するにはどうすればよいですか?
前もって感謝します。
javascript - 2 つのパラメーターを持つ Angular $resource エンドポイント
$resource を処理するサービスを使用して、次のようにセットアップしました。
サービス
関数の呼び出し
ただし、PUT 呼び出しが実際に通過すると、エンドポイントに到達します
/api/events/123/slots/
。123 が適切ですが、接続され@Id
ませ@slotId
ん。だから、私が望むのは/api/events/123/slots/456
、しかしそれは決して起こらないということです。
angularjs - リソース ファクトリ内の AngularJS $timeout
私は現在、ユーザーのログイン時にサービスを呼び出してサーバー呼び出しを開始してカウントを更新し、ユーザーが認証されている場合にのみサーバー側のリターンを許可するAngularアプリケーションを持っています。
ユーザーがログアウトすると、そのカウンターをキャンセルしようとしています。そうしないと、サーバーはリソースに基づいて関数を呼び出して 401 無許可エラーを返します。
問題は、サーバーから 401 を返す $timeout でキャンセルを呼び出した後でも、カウンターが引き続き実行されることです。コンソールからログアウトすると、キャンセル機能が true を返します (キャンセルが機能しました)。$timeout の開始位置をいくつか試してみましたが、うまくいきませんでした。すべての $timeout が確実にキャンセルされるようにする方法はありますか? この構成で何が欠けているのかわかりません。
編集
javascript - 2 番目の angular $http リクエストが宛先に到達しない
私は、事前交渉が完了するまで実際のリクエストを延期する oauth のようなフローを設定しています。
予備的なネゴシエーションは機能しますが、目的のリソースを要求しようとすると、次のような動作が発生します。
- django サーバーは、ネゴシエーションの各ステップで POST 要求をログに記録します。
- angular クライアントは、ネゴシエーションの各ステップの OPTIONS および POST リクエストをログに記録します。
ここまでは順調ですね。
次に、リソースの OPTIONS リクエストを取得します。error
$http のリクエスト関数がステータス 0 でコールバックを実行している間、このリクエストはブラウザで保留中のままスタックします。
angular から次のようなエラー メッセージが表示されます: リソースの読み込みに失敗しました。
これは、$http に渡すリクエスト オブジェクトです。
署名に干渉する可能性があることを恐れて、すべての標準ヘッダーを削除しました。
django サーバーは、この要求に対して何もログに記録しません。
任意のポインタをいただければ幸いです。
testing - レールで角度サービスをテストする
ジャスミンでサービスをテストしようとしていますが、「不明なプロバイダー: AuthServiceProvider <- 2683 行目の angular/angular.js の AuthService」というメッセージが表示され続けます。
私のサービスが定義されています:
そして私のテスト:
私のジャスミン設定ファイルは次のとおりです。
コントローラーを正常にテストできるため、これは適切に構成されているようですが、サービスが認識されない理由がわかりません。