Я новичок в AngularJS. Я пытаюсь извлечь данные из JSON с помощью сервиса и отобразить его. У меня есть отдельные файлы для контроллеров, служб. Я не могу узнать, что я делаю неправильно здесь. Я узнал, что мы возвращаем объект в случае фабрики, но я не уверен, как вернуть значение при использовании сервисов. Код, который я пробовал, приведен ниже.
HTML: У меня есть файл index.html
в который я загружаю этот HTML-код:
<div ng-controller="comp">
{{capcino}}
</div>
контроллер:
var app = angular.module("retailapp");
app.controller("comp", function($scope, elecservice){
$scope.capcino = elecservice.getval();
});
Обслуживание:
angular.module("retailapp").service("elecservice", serjson);
function serjson($http){
var val = "";
this.getval = function(){
$http.get("/elec.json").success(function(res){
val = res.namet;
return val;
});
}
}
Маршрутизация:
var app = angular.module("retailapp", ['ngRoute']);
app.config(function($routeProvider){
$routeProvider.when("/computer", {
templateUrl : "computer.html",
controller : "comp"
});
JSON:
{"namet" : "naysan"}
Я хочу показать значение "capcino" в выражении в HTML. Я получаю undefined
для этого значения. Пожалуйста, помогите с объяснением. Заранее спасибо.
Это обещание, поэтому он устанавливает $ scope.capcino после его возвращения. До тех пор, пока это не произойдет, значение $ scope.capcino не определено.
var app = angular.module("retailapp");
app.controller("comp", function($scope, elecservice){
elecservice.getval().then(function(data){
$scope.capcino = data;
});
});
Напишите, как следует:
var app = angular.module("retailapp");
app.controller("comp", function($scope, elecservice){
elecservice.getval().then(function(data){
$scope.capcino = data;
});
});
Просто измените контроллер, чтобы сохранить данные.
$scope.yourFunc = function(params){
YouService.function(params).then(function(result){
$scope.yourVar = result.data;
}
})
}}