迁移到AngularJS 1.6.3后,我改变了我的服务,如下所示:
这是我的服务:
MetronicApp.factory('MyService', ['$http', function($http) {
return {
get: function(id, success, error) {
return $http.get(baseUrl + '/quotation/' + quotationid).then(success,error);
}
}
}]);
在ui-router中,我正在解析这样的数据。
data: function(MyService, $stateParams) {
return MyService.get($stateParams.id);
}
但是在控制器中,数据未定义。我哪里错了?
答案 0 :(得分:0)
我们在服务部分中使用以下代码:
function load_list() {
$("#filename").empty();
$.ajax({
type: 'GET',
dataType: 'json',
url: "/cgi-bin/list_cgi?action=get_list",
success: function(result) {
var list = result.file.sort();
var current = result.current.split("/").pop();
list = list.slice(0, -1);
if (list.length == 0) {
$("#unavailable").html("<h2>File not found, please upload.</h2>");
show_upload();
return;
}
for (var i in list) {
$("filename").append("<option>" + list[i] + "</option>");
}
$("filename").val(current);
}
});
}
没有应用任何回调,并且在调用代码中:
get: function(){
return $http.get(url);
}
答案 1 :(得分:0)
这是因为您没有从success
/ error
回调函数返回任何内容。相反,我建议从.then(success,error);
方法中删除get
。然后只需调用service get方法
从决心。
data: function(MyService, $stateParams) {
return MyService.get($stateParams.id);
}