当我从我的 Controller 发布时,我收到了该错误
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));
}
这里我在同一个 Controller 中调用该函数
postDashboardsData('overall', $scope.datepickerConf1.overall, $scope.datepickerConf2.overall)
.then(function(data) {
console.log('data>>>', data);
$scope.overallData = data;
})
上面是返回未定义的
再次出错
TypeError: Cannot read property 'then' of undefined
我该怎么办?
最佳答案
您忘记了 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,它是一个带有 then
函数的对象。您的 postDashboardsData
函数应返回此 promise ,因此必须将 return 放置在 Api.post 执行之前。
关于javascript - Angular 应用程序出现错误 : TypeError: Cannot read property 'then' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34840975/