問題タブ [angularjs-http]
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 Controller には、スコープ変数にないいくつかのメソッドがあります。
Jasmine テスト内でこれらのメソッドを実行または呼び出す方法を知っている人はいますか?
ここにメインコードがあります。
私のジャスミン テストでは、「handleSuccessOfAPI」と「handleFailureOfAPI」メソッドを渡していますが、これらは未定義です。
これがジャスミンのテストコードです。
angularjs - 複数のパラメータを $http.post に渡しますか?
次の URL を使用して、サーバーにデータを保存するポスト リクエストを実行しようとしています。
projectId と scenarioId を渡したいです。$http.post を使用してそれを行うにはどうすればよいですか?
angularjs - POSTを呼び出すメソッドに応じたAngularJSの奇妙なCORSの問題
非常に単純に!これが機能しない理由:
しかし、これはあります!!
最初の例で 401 無許可を受け取りました! 2番目は魅力のように機能します..
angularjs - Angularjs のスタブ開発 - $httpBackend と一緒の $http 呼び出し
angularjsを使用してスタブ開発を行っています。私のスタブはサーバー上の JSON ファイルです。そのため、「スタブ」関数内で $http 呼び出しを行ってスタブを取得しています。ただし、$http は非同期であるため、whenGET は常に空のデータを返します (http が完了するのを待ちません)。この件に関する現在の質問を調べました。これらは、http 呼び出しの戻り値をスコープ データ モデルに割り当てる方法を提供します。httpリクエストが完了した後にデータを返したい。以下はコードです。
基本的に、tempData が設定されるまで whenGET の行を待機させます。get 関数内の tempData は、 whenGET メソッドの実行後にコンソールに記録されます。
angularjs - AngularJS : コントローラーのスコープが promise と同期しない
プロジェクトをピックアップして、サービスからコントローラーにデータを返そうとしています。私はこれで約12時間過ごし、さまざまな方法を試しました。それらはすべて、通常、この同じ種類の「欠落データ」をもたらします。
私はもう試した
- $http の代わりに $resource を使用する
$http.get
promise を使用せずにコントローラ内に権利を配置する- 返品のない実際のサービス(工場ではなく)としてのサービス
- さまざまな形式でデータを返すさまざまな方法でファクトリを構築する
- setTimeout と $apply の使用
私が今持っているものは、手に入れることができるほどシンプルだと感じています。私が読んだものはすべて、これが機能するはずだと言っています
angularjs-load-data-from-service
angular-controller-cant-get-data-from-service
angularjs-promises-not-firing-when-returned-from-a-service
angularjs-promise-not-resolving-適切に
これらのリンクは今日のものです。
過去に $scopes が複数のコントローラーが使用されているときにデータを取得しないのを見たので、$scope の問題があるのではないかと考えましたが、サイトはindex.html<body ng-app="myApp" ng-controller="BodyCtrl">
でコントローラーをセットアップとして宣言するだけです。メインのapp.jsは、(私が信じている ui-router からの) 状態を次のように使用します...
コントローラーを別のページにアタッチします。また、サイトにはサービスからデータを取得する他のコントローラーがいくつかありますが、最初にテンプレートとして調べましたが、データとリターンは私が取得しようとしているものよりもはるかに複雑です. 要するに、コントローラーはサービスから提供されたデータにアクセスしています。それらはすべて $resource を使用しています。これが、私がこの問題を開始した方法です。$http は機能するはずなので、これを使い続けています。「より高いレベル」に移る前に、これを機能させたいと思っています。また、エンドポイントから GET するだけでよいので、$resource はやり過ぎだと感じました。
サービス
コントローラ
コンソールログ
これは私のコンソール ログです。実際のデータではなく、多くの情報を取得できます。これが私が必要とするものです。私は頭がおかしくなり、.then(function (data) {
必要なコントローラー内のすべての関数をキャプチャするように拡張しました$scope.data
。それは列車事故でした。
私が知る限り、これはうまくいくはずですが、他にどこに問題があるのか わかりません! たぶん、約束がどのように機能するか、または解決するかを理解していません。以前に別のプロジェクトでAngularを使用したことがありますが、最初にそこにいて、それがどのようにまとめられているかを理解していました. このプロジェクトは別の方法で構成されており、よりカオスに感じられます。単純化したいのですが、単純なデータを返すことさえできないようです!
これが機能しない理由を特定するために提供できるヘルプ/フィードバックに感謝します。ありがとうございます!
編集: では、問題は、なぜconsole.log("data", $scope.data)
約束の前にnullに戻ってくるのですか?
コントローラーのもう少し下に私はこれを持っています
データにアクセスできないようです。
EDIT2:コントローラー内で使用していたものを、コントローラーのコンソールログと実際に必要な forEach とともに追加しまし$http.get
た$scope.data
EDIT3:
更新されたサービス
更新されたコントローラー
そのため、ビュー ( nvd3$scope.testData
チャート) で使用する必要があり、データを取得していません。
解決
angularjs - AngularJS の Promise で success/error/finally/catch を使用する
私は$http
AngularJs で使用していますが、返されたプロミスの使用方法とエラーの処理方法がわかりません。
私はこのコードを持っています:
これは良い方法ですか、それとももっと簡単な方法はありますか?
angularjs - AngularJS $http は成功するが機能しない
私はangularJSとSLIM PHPの安らかなサーバーを使用しています。PHPサービスは機能しており、実際にこのアプリケーションでは問題なく$http.get()を使用しています...しかし、奇妙なことが起こっています。新しい関数を作成しました他のものと同じように、問題なく .success(function(data)) を取得します。実際に console.log(data) を実行でき、正しい結果が表示されますが、.success() が終了して戻ると、i未定義の結果を受け取ります。ps: ブラウザ コンソールにエラーはありません。
- success() 内の Console.log() は正しいデータを返します
- loadMarkers() が undefined を返した後の Console.log()