2016-11-04 64 views
1

我正在npm模塊中編寫一個常用組件,我不知道什麼是templateUrl的最佳方式,它正在工作,但是我不想包含node_modulestemplateUrl,,因爲node_module direcotry可以重命名。在npm包中的Angular2組件templateUrl

有沒有其他的工作方式來使用它?

例如:"npm:my-commons-ts/my-commons/components/BootstrapAlert/BootstrapAlert.html"

@Component({ 
    selector: "bs-alert", 
    templateUrl: "node_modules/my-commons-ts/my-commons/components/BootstrapAlert/BootstrapAlert.html", 
}) 
export class BootstrapAlertComponent { 

    public errors: DisplayMessage[] = []; 
    public successes: DisplayMessage[] = []; 
    public warnings: DisplayMessage[] = []; 
    public infos: DisplayMessage[] = []; 

    @Input() 
    public bcn: string = null; 

    ... 
} 

我使用systemjs加載模塊。

回答

1

模板沒有通過SystemJS加載,所以你不能使用它的映射。

注意,你可以使用相對路徑,例如../BootstrapAlert/BootstrapAlert.html,也有某些構建工具,如爲gulp模板排滑輪鞋。

+1

如果您計劃發佈組件嵌入模板是一種方法。 Webpack/Angular-cli用戶遇到了我發佈的模塊有問題,這些模塊有相對路徑來模板。 – JayChase