我是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"}
我想显示价值&#34; capcino&#34;在HTML中的表达式。我获得undefined
的价值。请帮忙解释一下。提前谢谢。
答案 0 :(得分:0)
写如下:
var app = angular.module("retailapp");
app.controller("comp", function($scope, elecservice){
elecservice.getval().then(function(data){
$scope.capcino = data;
});
});
答案 1 :(得分:0)
这是一个承诺,所以它在返回后设置$ scope.capcino。在返回之前,$ scope.capcino未定义。
var app = angular.module("retailapp");
app.controller("comp", function($scope, elecservice){
elecservice.getval().then(function(data){
$scope.capcino = data;
});
});
答案 2 :(得分:0)
只需更改控制器即可存储数据。
$scope.yourFunc = function(params){
YouService.function(params).then(function(result){
$scope.yourVar = result.data;
}
})
} }