gpt4 book ai didi

angularjs - Angular 类型错误 : Cannot read property 'then' of undefined

转载 作者:行者123 更新时间:2023-12-03 23:26:15 25 4
gpt4 key购买 nike

我有这样的数据服务:

this.myFunction= function(callback) {
var url = rootURL + "path1/path2/service.json";
var promise = $http.get(url);
promise.then(function(payload){
return callback(payload);
});
return promise;
}

在 Controller 中调用它来初始化一些东西:
DataService.myFunction(function(data) { 
if(data.statusText !== "OK"){
$scope.$worked= false;
}else{
$scope.$worked= true;
}
}

我得到“TypeError:无法读取未定义的属性'then'”。回调中的 Console.log(data) 显示 200 "OK"响应和我期望的数据。我已经搜索过这个错误,主要是因为没有在服务中返回 promise 。然而,我正在返回 promise 。在回调中的 Controller 范围内设置任何内容都会导致错误。

Angular 版本:AngularJS v1.3.0-rc.2

谢谢!

最佳答案

在这种情况下,您不需要返回 promise ,因为您正在使用回调。回调和 promise 是频谱的两端。你可以简单地完成你想要的。

如果你想使用回调,你可以留下你的 Controller 代码。

this.myFunction= function(callback) {
var url = rootURL + "path1/path2/service.json";
$http.get(url).then(function(response) {
callback(response.data);
});
}

或者如果你想利用 promise
this.myFunction= function() {
var url = rootURL + "path1/path2/service.json";
return $http.get(url).then(function(response) {
return response.data;
});
}

DataService.myFunction().then(function(data) {
if(data.statusText !== "OK"){
$scope.$worked = false;
} else {
$scope.$worked = true;
}
});

关于angularjs - Angular 类型错误 : Cannot read property 'then' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26188801/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com