在 Angular 应用程序上收到错误:类型错误:无法读取未定义的属性“then”
Getting error on Angular app: TypeError: Cannot read property 'then' of undefined
当我
从控制器发布时出现错误
function postDashboardsData (dataType, dateFrom, dateTo) {
$scope[dataType + '_done'] = false;
Api.post('rotations/' + vm.data[0]._id + '/dashboard', angular.extend({
type : dataType,
date_range : {
from : dateFrom,
to : dateTo
}
}, vm.data));
}
在这里,我在同一控制器中调用该函数
postDashboardsData('overall', $scope.datepickerConf1.overall, $scope.datepickerConf2.overall)
.then(function(data) {
console.log('data>>>', data);
$scope.overallData = data;
})
那么上面是返回未定义的那个
再次出错
类型错误:无法读取未定义的属性"then"
我该怎么办?
你忘记了 postDashboardsData 中的return
:
function postDashboardsData (dataType, dateFrom, dateTo) {
$scope[dataType + '_done'] = false;
var dashboardsDataPromise = Api.post('rotations/' + vm.data[0]._id + '/dashboard', angular.extend({
type : dataType,
date_range : {
from : dateFrom,
to : dateTo
}
}, vm.data));
return dashboardsDataPromise;
}
解释
Api.post() 函数返回一个 promise,该 promise 是一个带有then
函数的对象。您的 postDashboardsData
函数应返回此承诺,因此必须在执行 Api.post 之前放置 return。
您在postDashboardsData
中缺少一个return
,即:
function postDashboardsData(dataType, dateFrom, dateTo) {
$scope[dataType + '_done'] = false;
return Api.post('rotations/' + vm.data[0]._id + '/dashboard', angular.extend({
type: dataType,
date_range: {
from: dateFrom,
to: dateTo
}
}, vm.data));
}
然后你可以像这样使用postDashboardsData
:
postDashboardsData(dataType, dateFrom, dateTo).then(function(response){
console.log(response, response.data);
})
相关文章:
- webRTC错误未定义配置
- gmaps4rails 2.4.6未捕获引用错误:未定义Gmaps
- 未捕获引用错误:未定义validateform
- 为什么我会出现此错误"未捕获引用错误:未定义标题;
- Sitecore”;未捕获引用错误:未定义MultilistWithSearch;
- Wordpress:未捕获引用错误:未定义速度
- Node.js引用错误:未定义类名
- Replace()产生“;未捕获的类型错误:未定义的不是函数“;当与零一起使用时
- 错误-未定义easeInBounce
- 未捕获的引用错误:未定义<映射键>
- 未捕获的类型错误:未定义不是上的函数.GetElementByID
- Javascript错误:未捕获引用错误:未定义编辑
- javascript onchange取消绑定错误|未定义
- requirejs优化器错误:未定义窗口
- 未捕获引用错误:未定义PrintThisPage
- JSHint 错误:未定义我的应用程序 (W117)
- 当我编写脚本时,它显示引用错误:未定义宽度
- socket.io - 引用错误:未定义 io
- 反应.js:未捕获类型错误:未定义不是一个函数
- 出现“未捕获的类型错误:未定义不是函数”控制台错误