Ein sehr Rookie-ish Frage:Wie Parameter übergeben, wenn Ressource Service verwenden?
Ich versuche Ressourcenobjekt mit Factory-Methode zu bauen:
.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
});
}])
Diese Methode ist einfach, da alle params sind vordefiniert, organEntity und organCommpassword definiert innen-Tag.
Jetzt für ein anderes Ressource-Objekt, muss ich Parameter übergeben, wenn die Fabrik aufgerufen wird.
stelle ich mir die Berufung Code dieses Ressourcenobjekt sollte folgendermaßen aussehen:
.controller('ResrouceCtrl', function($scope, Magazines) {
$scope.magazines = Magazines.query();
});
Ich weiß query() Methode Parameter hinzufügen: Magazines.query(params, successcb, errorcb);
Ich frage mich, ob ich in Parameter nur passieren, kann ich Holen Sie den Parameter im Werk? Wie werden solche übergebenen Parameter in der Factory-Methode angegeben?
Zum Beispiel, jetzt nehme ich an, dass ich organId nicht mehr von der URL abrufen kann, ich muss es von meinem Controller übergeben, wie kann ich organId innerhalb der Factory-Methode erhalten?
Hier ist meine Ressource 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
});
})
Hier mein Controller ist:
$scope.magComments = MagComments.query({magId : 1});
Ich habe versucht, in den Parameter zu übergeben, aber es führt zu einem Fehler
Ich bin ein wenig verwirrt, was Sie tun, etwas mehr Code könnte hilfreich sein. Warum sollte es von Bedeutung sein, woher du das Organ hast? Ich würde einfach den Wert in die geben.query() -Methode, wenn der Controller sie aufruft, wie Sie bereits gesagt haben. Die Fabrik wird nur einmal in Ihrer Anwendung aufgerufen, daher ist "Magazine" ein Singleton. –
Also kann ich einfach die Parameter von meinem Controller durch .query() übergeben und es einfach in der Fabrik verwenden? –
Ich glaube nicht, dass Sie sich darüber klar sind, was die Fabrik macht. Die Fabrik erstellt ein Objekt, das an Ihren Controller übergeben wird, wenn Sie es angeben, hängt von "Zeitschriften" in der Konstruktorfunktion ab. Die von Ihnen zurückgegebene Ressource * ist also * Zeitschriften in Ihrem Controller und funktioniert genau so, wie es in der Dokumentation heißt. Oder meinst du, du willst verschiedene Standardeinstellungen für einen bestimmten Controller verwenden, die ich dir zeigen kann, aber ich würde denken, dass das Aufrufen der Abfrage mit "params" für deine Situation gut funktionieren sollte. –