2016-08-24 2 views
3

내 angular2 프로젝트를 rc5로 업데이트하고 있습니다. 나는 Html Resolver를 가지고있다. 그것은 rc5로 업데이 트되는 좋은 bevor 일했습니다. 내 문제는 "ViewResolver"rc5에서 제거되었습니다. 나는 어떤 결정을 내렸는가? 방금 메타 데이터에서 "templateUrl"을 수정하려면Angular2 RC5 아니요 ViewResolver

+0

캔 아무도 나를 도울? 이 리졸버를 사용하여 내 서버에 모바일 페이지를 요청합니다. – Lyror

답변

0

을 돕는

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; 
    } 

} 

감사합니다.

당신은 "UrlResolver"의 "결의"방법을 가로 채기 위해 동적 프록시를 만들 수 있습니다

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

+0

이것은 나를 위해 URL을 가로 채지 않는 것 같습니다. 몇 가지 예를 들어 주시겠습니까? –

+0

데모를 추가했습니다. 시도해보십시오 ~ –

관련 문제