2017-05-28 55 views
1

我採用了棱角分明4.1.3和Rails 5.1角4 templateUrl文件

我想實現的應用程序組件,如果我使用的模板,寫我的HTML,一切正常,但我想用templateUrl 。

這是我的組件。

import { Component } from '@angular/core'; 

@Component({ 
    selector: 'app', 
    templateUrl: './app.component.html' 
}) 
export class AppComponent {} 

這是我的文件結構

├── app 
| ├── app.component.html 
| └── app.component.ts 
| └── app.module.ts 

據我所知,在@Component您可以添加的moduleId:module.id,但我認爲這不再需要在角4.1.3。

如果我添加它,它告訴我: moduleId should be a string in "AppComponent"

我還認爲,如果你不包括的moduleId角從根目錄只是抓住,但如果我做了一個絕對路徑,它應該工作的權利?

如果你們可以幫忙,那就太棒了。

+0

我不認爲這是'moduleId'的問題,但與rails/webpacker默認不支持'templateUrl'。請參閱:https://stackoverflow.com/a/45170420/616292 –

回答

2

我假設您在rails項目中使用新的webpacker-gem

還有就是如何在這裏使用templateUrl與它的文檔中描述:Use HTML templates with Typescript and Angular

+0

請評論如果您需要其他信息,我不能評論您的原始問題不幸:/ – Niklas

+0

對不起,我只是幾乎沒有去哪裏我可以試試這個,現在我嘗試了我得到這個錯誤的步驟。 '承諾拒絕:未能加載%3Ch1%3EHello%20%7B%7Bname%7D%7D%3C/h1%3E;區域:;任務:Promise.then;價值:未能加載%3Ch1%3EHello%20%7B%7Bname%7D%7D%3C/h1%3E' – Doctor06

+0

它就像它沒有被轉移。 – Doctor06

1

如果你想保持templateUrl你可以使用angular2模板裝載機的WebPack插件:

# add plugins to project 
yarn add angular2-template-loader raw-loader 

並配置它:

# edit config/webpack/loaders/angular.js with 
module.exports = { 
    test: /.ts$/, 
    loaders: ['ts-loader', 'angular2-template-loader'], 
    exclude: [/\.(spec|e2e)\.ts$/] 
} 

# create a new loader for htmls config/webpack/loaders/html.js 
module.exports = { 
    test: /\.(html)$/, 
    loader: 'raw-loader', 
    exclude: /\.async\.(html)$/ 
}