[英]Angular2 RC5 No ViewResolver
我正在將我的angular2項目更新為rc5。 我有一個Html解析器。 它工作得很好,我更新到rc5。 我的問題是在rc5中刪除了“ViewResolver”。 解析器有什么選擇?
import {Injectable, ComponentMetadata, ViewMetadata, Type} from '@angular/core';
import {Globalservice} from './Service/Globalservice';
export class AppResolver extends ViewResolver {
resolve(component: Type): ViewMetadata {
var view = super.resolve(component);
if (view.templateUrl.trim().substring(view.templateUrl.lastIndexOf('.')+1).toUpperCase() == "HTML" && Globalservice.IsMobileDevice()) {
var index = view.templateUrl.lastIndexOf('/') + 1;
var newUrl: string = view.templateUrl.substr(0, index) + "m" + view.templateUrl.substr(index);
view.templateUrl = newUrl;
}
return view;
}
doesFileExist(urlToFile): boolean {
return false;
}
}
謝謝你的幫助
如果您只想從元數據修改“templateUrl”。
您可以創建一個動態代理來攔截“UrlResolver”的“resolve”方法:
import { UrlResolver } from '@angular/compiler';
export class MyUrlResolverInterceptor {
static attach() {
var proxied = UrlResolver.prototype.resolve;
UrlResolver.prototype.resolve = (baseUrl: string, url: string): string => {
var _url = doSomethingToMakeTheUrlYouWant(url);
return proxied.bind(proxied)(baseUrl, _url);
};
};
}
並執行MyUrlResolverInterceptor.attach();
在bootstrap根模塊之前。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.