我的服务层中有以下JavaScript代码。执行此代码时,我收到错误消息 - 无法读取属性'然后'未定义的。我查看了stackoverflow上的其他类似帖子,但仍无法解决此问题。
问题:哪些代码更改会纠正上述错误?可能是我在AngularJS中以错误的方式调用某些内容但不确定。
function getPreferenceSet(type) {
var t = angular.isString(type) ? type : '';
logger.info('getPreferenceSet: fetching; type: ' + t);
var route = userPreferenceConstants.endPoints.PREFERENCE + '?type=' + t;
var allDashboardsDeferred = false;
if (!allDashboardsDeferred) {
allDashboardsDeferred = $http.get(route)
.then(getPreferenceSetComplete)
.catch(function (message) {
exception.catcher('XHR failed for getPreferenceSet')(message);
});
}
return allDashboardsDeferred.promise;
function getPreferenceSetComplete(response) {
logger.info('getPreferenceSet: complete');
return response.data;
}
}
答案 0 :(得分:1)
对php cli-doctrine.php orm:schema-tool:create
的调用返回一个HttpPromise,该调用在调用完成时解析。 allDashboardsDeferred变量已经是一个promise而不是deferred,所以你可以直接返回它:
$http.get(route).then(...).catch(...)