meiner Fabrik ist:Daten vom Controller zum Werk senden?
myAppServices.factory('ProfileData',['$http', function($http){
return{
newly_joined:function(callback){
$http.get(
//myUrl will be an url from controller.
myUrl
).success(callback);
}
};
}
]);
und ich habe drei Controller, die unterschiedliche URL hat:
controller1:
AppControllers.controller('ProfileListCtrl',['$scope','$state', '$rootScope', 'ProfileData', '$timeout', function($scope, $state, $rootScope, ProfileData, $timeout) {
ProfileData.newly_joined(function(response) {
var myUrl= "www.abc...."
//something goes there
});
}]);
controller2:
AppControllers.controller('ProfileListCtrl1',['$scope','$state', '$rootScope', 'ProfileData', '$timeout', function($scope, $state, $rootScope, ProfileData, $timeout) {
ProfileData.newly_joined(function(response) {
var myUrl= "www.abc...."
//something goes there
});
}]);
und Steuerung 3 ist:
AppControllers.controller('ProfileListCtrl2',['$scope','$state', '$rootScope', 'ProfileData', '$timeout', function($scope, $state, $rootScope, ProfileData, $timeout) {
ProfileData.newly_joined(function(response) {
var myUrl= "www.abc...."
//something goes there
});
}]);
Ich möchte verschiedene Daten in verschiedenen Controller wegen der unterschiedlichen URL und ich zeige alle drei Details auf einer einzigen Webseite.
Also, wenn es eine Methode geben würde, 'myUrl' in der Fabrik zu senden, die ich das für das Ziehen von Daten verwenden kann.
Hinweis: Bitte schlage mich nicht vor, $ resource oder $ routeparams zu verwenden, da $ resource beim Ziehen von Daten aus json nicht erfolgreich war und ich keine große variable URL für meine Seite verwenden möchte.
Vielen Dank im Voraus
So abhängig von der Steuerung Sie verschiedene Daten zurückgegeben werden sollen? Wenn das der Fall ist, warum nicht 3 separate Methoden erstellen (ich denke, das ist das beste Design), oder einfach einen Namen an "neu_geschlossen" wie 'neu_verbunden (" Profil ")' vs. 'neu_geschlossen (" profile1 ")' (nicht als gute Lösung)? – dman2306
Ich sollte auch erwähnen, dass der "Erfolg" -Rückruf auf "$ http" veraltet ist, siehe https://docs.angularjs.org/api/ng/service/$http. Sie sollten stattdessen 'then' verwenden. – dman2306