問題タブ [restangular]

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 投票する
2 に答える
7992 参照

javascript - サーバー応答でRestangularモデルオブジェクトを更新するには?

私の POST と PUT は、サーバーで見られるエンティティの現在の状態を返します。サーバー呼び出し後にモデル オブジェクトを更新するように Restangular に指示するにはどうすればよいですか?

念のため-なぜですか?保存/更新中にサーバーがいくつかのフィールドを計算した可能性があるためです。他のクライアントによる同時更新があった可能性があり、現在更新中のクライアントが最新であることを確認したいためです。

これまでのところ、これしか見つかりませんでした:

それは非常に汚いと同時に一般的であるように思われるので、もっと良い方法があるに違いないと思います。

編集

上記のコードは、2 つの異なるアクションのみを示しています。私の目標は、エンティティの作成後にサーバーに更新を送信することではなく、クライアントの状態を更新することです。必要に応じて、状態をサーバーと同期しています。

オブジェクトを POST すると:

サーバー応答の本文は次のとおりです。

...次に、Restangular にresオブジェクトを自動的に更新および再構築してもらいたいので、IDを取得したり、put()などを行うことができます。

今、別の/補完的なシナリオ。Restangular オブジェクトを PUT すると:

サーバーは常にオブジェクトの現在の状態を返します。

res...だから、この PUT の後、Restangular を自動的に更新したいと思います。

0 投票する
2 に答える
12682 参照

javascript - Restangular で完全な URL を使用する

Restangular for AngularJS のすべての機能が気に入っていますが、完全な URL を単に渡す方法が見つからない (サポートされていない可能性がある) ことを除きます。私は .one('something','someparam') の利点を認識していますが、私の問題は、さまざまな URL 文字列が渡されることであり、Restangular を使用するためだけにそれらを split() する必要はありません。

また、baseURL 関数についても知っています。しかし、渡されたこれらの URL は、必ずしも同じベース パスから派生したものではありません。

たとえば、次のような場合があります。

与えられたのは文字列だけです...

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

angularjs - AngularJS (Restangular): プロミス ブロックを作成しますか? トークンの検証に使用する必要がある

Restangular に出くわしたのは、休息サービスを呼び出すためです。それはうまく機能し、約束を返します。コールブロックを使用できるようにする必要があります。この理由は、技術的にはログインしていない新しいページのリロードにありますが、Cookie にトークンが保存されている可能性があります。このトークンを残りのサービスに対して検証したいと思います。問題は、ブロックする必要があることです。

タイムアウトが発生した場合、またはそれが有効でない場合、ユーザーを認証されていないものとして扱うことができます。

これがブロックしたい理由は、有効なトークンではない新しい URL に $location.path を使用してそれらをリダイレクトしたいからです。

これは特定のルートでは発生しないため、ブロックしている解決を使用できません。技術的にはすべてのルートで発生します- $on.$routeChangeStart を使用し、内部変数が LoggedIn を取得したかどうかを確認します。ログインしていない場合は、保存されているトークンを確認します。

これはページの更新ごとに発生しますが、アプリケーション内を移動している間は発生しません。

私が得ようとしている影響は、Gmail がどのように機能するかです。

誰かがこれについて持っている洞察を楽しみにしています

ありがとう

0 投票する
2 に答える
1483 参照

ajax - Restangular URL 構築の Id プロパティの設定方法

しましょう


別の GET リクエスト:

させて: user: { id: '123' }

$scope.cars = $scope.user.getList('cars'); これにより、GET リクエストが開始されます: /users/ 123 /cars

123id プロパティから取得されます。


質問:

たとえば、オブジェクトのid プロパティがusernameという名前だったかどうかを明示的に構成することは可能ですか。

0 投票する
2 に答える
1491 参照

python - restangular/django: "TypeError: オブジェクト #メソッド 'push' がありません" (RestangularProvider.setResponseExtractor が呼び出されていませんか?)

更新 2

問題を修正した 0.6.1 から 1.0.9 にアップグレードしました。バージョン 0.8.7 と 0.8.8 には、この作業を行うために必要な 2 つの修正があったようです。0.8.7 では、reourceExtractor を呼び出しますが、このトレースでエラーが発生します。

エラー: $digestは Object.$get.Scopeの beginPhase ( http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.js:8334:15 ) の Error () で既に進行中です。 $apply ( http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.js:8136:11 ) at HTMLDivElement.ngEventDirectives.(匿名関数) ( http://ajax.googleapis.com /ajax/libs/angularjs/1.0.7/angular.js:12986:17 ) event.preventDefault で ( http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.js:1992: 10 ) Array.forEach (ネイティブ) で forEach ( http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.js:130:11 ) で eventHandler (http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.js:1991:5 ) HTMLDivElement.forEach.bind.events.(匿名関数) ( http://ajax.googleapis. com/ajax/libs/angularjs/1.0.7/angular.js:2067:15 ) event.preventDefault ( http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.js:1992 ) :10 )

しかし、0.8.8 はそれをすべて解決したようです。他にも異常がないか、引き続き調べてみます。

どうやってこのような古いバージョンの restangular になってしまったのかわかりません。


アップデート:

そのため、JavaScriptをトレースします

成功変数が呼び出されています からの無名関数です

ここで、responseExtractor はアプリで設定した関数です。それで、これはすべて良さそうですか?の

REST 呼び出しが行われ、データ変数に正しい REST 応答が含まれます。ここでは同じ関数でバラバラになっています:

エラーが発生しています @ value.push(new Resource(item)); ここで、値は基本的に JSON 残りの応答です。

角度リソースでは、残りのリソースと応答を定義する必要があり、定義の一部が配列部分を定義していることを読みました。それが根本的な原因であるかどうかはわかりませんが、restangular がそれを処理してくれると思いました。やるべきことはまだまだあります。どんな助けでも - まだ - 感謝しています。

どうも


だから私はAngularとDjangoを同時に学んでいます。Django レスト サービスを使用して、単純な JSON を返すサービスを構築しました。その部分は正常に機能していますが、/restangular に接続できないようです。REST 呼び出しが発生しており、json が返されていますが、responseExtractor が呼び出されていないようです。私はそわそわしていて、指を置くことができないようです。

前もって感謝します

コールスタックの追加:

TypeError: Object # has no method 'push' at U ( http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js:10:257 ) at new Resource ( http:/ /ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular-resource.js:350:9 ) http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular- resource.js:407:32 at m ( http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js:6:494 ) at http://ajax.googleapis.com /ajax/libs/angularjs/1.0.7/angular-resource.js:406:19 at h ( http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js:78 :33 ) http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js:78:266 Object.e.$eval ( http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js:88:347 ) で Object.e.$digest ( http:// ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js:86:198 ) Object.e.$apply ( http://ajax.googleapis.com/ajax/libs/angularjs/ ) 1.0.7/angular.min.js:88:506 )

非最小スタック

TypeError: Object # has no method 'push' at copy ( http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.js:593:21 ) at new Resource ( http://ajax ) .googleapis.com/ajax/libs/angularjs/1.0.7/angular-resource.js:350:9 ) angular.module.factory.Resource.(匿名関数) ( http://ajax.googleapis.com/ajax ) /libs/angularjs/1.0.7/angular-resource.js:407:32 ) forEach ( http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.js:137:20 ) angular.module.factory.Resource.(匿名関数) ( http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular-resource.js:406:19 )で deferred.promise.then .wrappedCallback (http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.js:6846:59 ) ref.then ( http://ajax.googleapis.com/ajax/libs/angularjs/1.0 ) .7/angular.js:6883:26 ) Object.$get.Scope.$eval で ( http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.js:8057:28 ) Object.$get.Scope.$digest ( http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.js:7922:25 ) で Object.$get.Scope.$apply ( http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.js:8143:24 )

コードを見ると、responseExtractor メソッドはスタックに表示されない変数「a」に格納されています。

JSON

Javascript (編集: sza が言及したカット ペースト エラーを修正)

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

django-rest-framework - Restangular は GET の代わりに HTTP OPTIONS を使用します

Django-rest-framework を使用してデータを公開している Django アプリケーションがあります。次のように、json 形式でオブジェクトにアクセスできます。

また

私は現在、データにアクセスするために AngularJS を使用しようとしています。私はそのようにrestangularを設定しました:

そして、私のコントローラーで:

問題は、Django ログに常に HTTP OPTIONS リクエストが表示されることです。

Firebug では、「ステータス コード 0 のエラー」と表示されます。

私は何が間違っているのですか?よろしくお願いします。

よろしく、フィル

0 投票する
2 に答える
1394 参照

angularjs - AngularJS で restangular または $resource を使用して JSON にアクセスする

可能な限りすべての読み取りを行いましたが、Django Rest フレームワークで AngularJS を使用するための何かが欠けています。「末尾のスラッシュ」の問題を解決するために、私は restangular を使用しています。私のモジュールの関連部分:

TcpMon は正しい応答を示しているようです。

しかし、どうすればアクセスできますか?このコードは私の見解では機能しません:

json を手動で解析する必要がありますか? はいの場合、どのように?助けてくれてありがとう。

よろしく、フィル