我使用C#Helpers构建我的视图,angular2通过调用控制器并接收C#生成的视图的html来使用此视图。 但我的问题是当用户没有访问视图的权限并且控制器返回401 Unautorized时,当角度尝试模板加载并且组件保持断开时,这会产生错误,直到您清理缓存并使用有效授权重新加载。
任何想法如何在组件加载之前验证templateUrl?
答案 0 :(得分:0)
我解决了我的问题,即创建一个在templateUrl上调用的函数并返回正确的字符串url。
function hasTemplate(template: string) {
var http = new XMLHttpRequest();
http.open('GET', template, false);
http.send();
return (http.status === 200) ? template : '/view/home/error/';
}
export const getViewUrl = <TModel>(modelo: { new (): TModel }, tipo: string) => {
//Url to call web service and verify the response
let url = `/view/${modelo.name.toLowerCase()}/${tipo}`;
return hasTemplate(url);
};
@Component({
selector: 'cidade-list',
templateUrl: getViewUrl(Cidade, 'list'),
styleUrls: [CssPath],
providers: [
CidadeService,
]
})
export class CidadeListComponent {}
&#13;