Ich habe den separaten Dienst zum Abrufen von Daten vom Server erstellt, aber ich möchte die Daten zuweisen, die dieser Dienst in den Controllern als Variable zurückgibt. In diesem Fall handelt es sich bei Daten um eine einfache JSON-Datei.
Hier ist mein Service
angular.module('app')
.service('TextService', ['$http', function CompanyService($http) {
var service = {};
$http.get('text.json').
then(function (response) {
service.text = response.data.text;
console.log(response.data.text);
}, function (response) {
alert(response);
});
return service;
}]);
und hier ist mein Controller
app.controller("myCtrl", ['$scope', 'TextService', function($scope, TextService){
$scope.text = TextService.text;
}]);
dann versuche ich $ scope.text angezeigt werden, aber es funktioniert nicht. (Ich habe Controller in html zugewiesen)
Ich denke, ich werde einige Hilfsfunktion verwenden müssen, da TextService asynchron ist. Ich würde gerne verstehen, wie es funktioniert und warum es jetzt nicht funktioniert. und ist es eine gute Struktur, $ http Anruf in Dienst zu wickeln?
die 'Text' Eigenschaft tatsächlich hat die gespeicherten Daten in es . Sie sollten 'TextService.text' anstelle von' TextService' verwenden. –