非常に新人っぽい質問:リソースサービスを使用するときにパラメータを渡す方法は?
私はファクトリメソッドを使用して、リソースオブジェクトを構築しようとしている:
.factory('Magazines', [function ($resource) {
var url = document.URL;
var urlArray = url.split("/");
var organId = urlArray[urlArray.length-1];
return $resource('http://localhost/ci/api/magazines/:id', {
loginID : organEntity,
password : organCommpassword,
id : organId
});
}])
すべてのparamsは、事前に定義されており、organEntityとorganCommpasswordは、タグ内で定義されているので、この方法は簡単です。
異なるリソースオブジェクトの場合、ファクトリが呼び出されるときにパラメータを渡す必要があります。
.controller('ResrouceCtrl', function($scope, Magazines) {
$scope.magazines = Magazines.query();
});
私はquery()メソッドは、パラメータを追加することができます知っている:私はこのリソースオブジェクトの呼び出し元のコードは次のようになります想像
私はちょうどパラメータを渡す場合Magazines.query(params, successcb, errorcb);
を私は疑問に思う、することができます私は工場でパラメータを取得しますか?そのような渡されたパラメータをファクトリメソッドで指定する方法は?
たとえば、私は今urlからorgIdを取得できないと思いますが、コントローラから渡す必要があります。ファクトリメソッド内でorganIdを受け取る方法は?ここで
は、私のリソースのjsである:ここで
.factory('MagComments', function ($resource) {
return $resource('http://localhost/dooleystand/ci/api/magCommenct/:id', {
loginID : organEntity,
password : organCommpassword,
id : '@magId' //pass in param using @ syntax
});
})
は私のコントローラです:
$scope.magComments = MagComments.query({magId : 1});
私は、パラメータを渡すことを試みたが、それは私のエラー
私はいくつかのコードをやっていることが参考になるかもしれないと少し混乱しています。なぜあなたはオルガナードをどこから入手したのですか?私は値を渡すだけです。あなたがすでに言ったように、コントローラがそれを呼び出すときにquery()メソッド。工場ではアプリケーションで一度しか呼び出されないので、「雑誌」はシングルトンです。 –
私はコントローラから.query()を介してパラメータを渡すだけで工場で使用できますか? –
私はあなたが工場が何をしているのか分かりません。ファクトリは、コンストラクタ関数の "Magazines"に依存して指定すると、コントローラに渡されるオブジェクトを作成します。したがって、あなたが返すリソースは*あなたのコントローラ内の* Magazinesであり、ドキュメントがそうするように動作します。または、私はあなたに見せることができる特定のコントローラに異なるデフォルトを使用したいと言っていますが、私はあなたの状況に対してうまく動作するはずです "params"でクエリを呼び出すと思うでしょう。 –