Angular 承诺:$q 拒绝 return html?
Angular Promise: $q reject return html?
是否可以在发生 $q.defer 拒绝时 return 一个 html 文件?我正在使用以下函数加载地图,问题是当 deferred.reject() 发生时,整个地图变为空白。我在拒绝内部尝试了一个警报功能,这是一个错误并且它有效,但用户页面仍然是空白的,除非他们返回页面,否则用户无法导航出去。那么,是否可以像 deferred.reject('test.html') 那样显示整个 html 文件。我是 java 脚本和一般编程的新手。
loadData = () => {
let deferred = this.$q.defer();
this.siAsset.getAllcomponents().then((resp) => {
if(resp.statusCode){
deferred.reject('No Mappable Assets Found');
}else{
deferred.resolve(resp)
}
}, (err) => {
if(err =="TypeError: Cannot read property 'components' of null"){
deferred.reject('No Mappable Assets Found');
}else{
this.$log.error(err)
}
})
return deferred.promise
}
so essentially the loaddata loads things like markers and diagrams inside a map, the problem is when choosing a user with no map data, the entire page becomes blank , this is the ui route setup for the page
.config(($stateProvider) => {
"ngInject";
$stateProvider
.state('map', {
url: '/map',
component: 'map',
resolve:{
loadData:(siMapUtils) => {return siMapUtils.loadData()},
isAuthenticated: (siUser) => {
return siUser.isAuthenticated()
},
isAccessible: (siRoutePermissions) => {
return siRoutePermissions.validate({
permissionModules:['MAP_READ']
})
}
}
});
})
我找到了一个更好更简单的解决方案,解决了我使用 state go 将用户引导到现有页面的地方
deferred.reject(this.$state.go('administration.assets'))
是否可以在发生 $q.defer 拒绝时 return 一个 html 文件?我正在使用以下函数加载地图,问题是当 deferred.reject() 发生时,整个地图变为空白。我在拒绝内部尝试了一个警报功能,这是一个错误并且它有效,但用户页面仍然是空白的,除非他们返回页面,否则用户无法导航出去。那么,是否可以像 deferred.reject('test.html') 那样显示整个 html 文件。我是 java 脚本和一般编程的新手。
loadData = () => {
let deferred = this.$q.defer();
this.siAsset.getAllcomponents().then((resp) => {
if(resp.statusCode){
deferred.reject('No Mappable Assets Found');
}else{
deferred.resolve(resp)
}
}, (err) => {
if(err =="TypeError: Cannot read property 'components' of null"){
deferred.reject('No Mappable Assets Found');
}else{
this.$log.error(err)
}
})
return deferred.promise
}
so essentially the loaddata loads things like markers and diagrams inside a map, the problem is when choosing a user with no map data, the entire page becomes blank , this is the ui route setup for the page
.config(($stateProvider) => {
"ngInject";
$stateProvider
.state('map', {
url: '/map',
component: 'map',
resolve:{
loadData:(siMapUtils) => {return siMapUtils.loadData()},
isAuthenticated: (siUser) => {
return siUser.isAuthenticated()
},
isAccessible: (siRoutePermissions) => {
return siRoutePermissions.validate({
permissionModules:['MAP_READ']
})
}
}
});
})
我找到了一个更好更简单的解决方案,解决了我使用 state go 将用户引导到现有页面的地方
deferred.reject(this.$state.go('administration.assets'))