gpt4 book ai didi

Angular2 RC5 没有 ViewResolver

转载 作者:太空狗 更新时间:2023-10-29 19:35:25 26 4
gpt4 key购买 nike

我正在将我的 angular2 项目更新为 rc5。我有一个 Html 解析器。在我更新到 rc5 之前它运行良好。我的问题是“ViewResolver”在 rc5 中被删除了。我有什么选项可以让解析器工作?

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();

see demo here

关于Angular2 RC5 没有 ViewResolver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39117363/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com