問題タブ [angularjs-resource]
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 - ネストされたリソースを解決する ngResource
ngResource 応答でネストされたリソースを解決するためのオプションは何ですか?
ngResource でネストされたリソースのエンドポイントを解決することに関するいくつかの関連する質問がありましたが、この質問は、REST 応答にクエリ対象のコレクションにネストされた 2 番目のリソースが含まれている場合、特に 1 対 1 のマッピングがない場合に関するものです。たとえばpets/<id>/owner
、独自のリソースとして。
2 つのリソースがあるPets
としOwners
ます。
/ペットを取得:
開発者として、Owner
リソース全体を照会したい場合もあれば、リソースを照会したい場合もあり、その属性をリソース インスタンスPet
に自動的に解決したい場合もあります。owner
これは私の現在の解決策です:
ここでの問題はたくさんあります。1 つには、誠実さがあります。この実装により、同じリソースの複数のインスタンスが可能になると思います。あとは実用性。また、追跡する追加の属性もあります (モデルを保存できるようにする場合は、単に;の代わりにowner
および)。getOwner()
owner
setOwner
代替ソリューションを に構築することもできますtransformResponse
が、ネストされたマッピングを持つすべてのリソースにそれを含めるのはハックのように思えます。
javascript - angular リソースがアクション固有の URL を無視するのはなぜですか?
次の角度コードがあります。
マークアップは次のようになります。
ボタンをクリックすると、サーバーに対して POST を実行しようとしますが、アクション固有の URL ではなく、元の URL に対して実行されます。リクエストの URL は次のようになります。
なぜ POST しようとしているの/post
ですか?また、理由はありid=undefined
ますか?他の例では?id=blah
、ID が指定されていない場合、リクエストに含まれていないように見えます。前もって感謝します。
angularjs - $resource カスタム アクションは、スコープ指定された変数をサーバー レスポンスに置き換えます
カスタム アクションで $resource を使用しています。
User オブジェクトを問題なく取得できます。問題は、カスタム アクションを呼び出すと、ローカル スコープの User オブジェクトの値がサーバーの応答に置き換えられることです。サーバーの応答が{ success : true }
であるため、これは問題です。これにより、ローカル オブジェクトのすべてのフィールド値が失われます。
RESTful の哲学では、たとえば、リソースへの POST によってそのリソースが (サーバー上で) 更新され、更新されたリソースのコピーが返されると述べられていることを私は知っています。これが AngularJS $resouce.$save の仕組みであることを理解しています。しかし、それは本当にカスタム アクションに適用する必要があるのでしょうか?
php - Angular リソース サービスの $save 関数を使用する適切な方法
angular $save 関数を使用しようとして、角度リソースを使用しています。
デフォルトでは、$save はモデルをサービス URL に送り返します。ただし、モデルがサービスに返されることを期待しているようです (これを行わないと、モデルは空になります)。メッセージとエラーをコントローラーに返す最良の方法は何だろうと思っていました。
私の解決策は、処理中に発生したエラーを格納するエラー配列と、返すモデルを格納するフィールドを持つ新しいクラスを PHP で作成することでした。その後、コールバック関数で送り返されて処理されます。
これらの行は次のとおりです。to を$scope.user=User.get({id:data.data.UserName});
割り当てただけでは、ユーザーはサービスを使用しなくなり、再度使用しようとするとエラーが発生するため、使用する必要がありました。$scope.user
data.data
ApplyChanges
それで、これをもっと目立たないようにする方法はありますか?そのままでは、モデルを取得するために追加のコールバックを行う必要があります。エラーが発生した場合にのみエラーを送信し、モデルを取得するためのコールバックを追加する必要がありますか? より良い方法はありますか?
javascript - angular で Service によって返された JSON を反復処理する
コントローラーの $resource によって、反復処理を繰り返して id で検索し、以下に示すタイプの JSON オブジェクトから id に対応する他の値を返そうとしています。この場合、どこが間違っているのか理解できませんか? 助けてください!
これがコントローラー
JSON のタイプは次のとおりです。