2017-01-24 68 views
6

在Angular 2中可以使用HAML作爲模板引擎嗎?Angular2與Haml

在Angular 2(版本2.3.1)中,您可以使用scss/sass而不是css。這是angular-cli--style的給定選項。對於模板,cli只允許通過設置--inline-template來改變內聯模板。

除非是支持了,我怎麼有配置我的角2個應用程序(由角CLI版本1.0.0-beta.26創建)寫HAML,把它編譯成HTML,並使用HTMLcomponent作爲templateUrl

編輯 Angular/cli使用webpack。我不知道如何配置webpack以在將所有東西捆綁在一起之前將haml呈現給html。 如何在Angular中使用haml-loader

回答

2

它應該是可能的,但只能使用外部模板文件(templateUrl)。你必須建立你的建築系統(webpack,gulp)來預處理所有的模板,然後才能使用它們。

+0

它應該是,不回答我如何配置它,做它 – DenniJensen

4

是的,這絕對有可能。如果您正在使用angular-cli,則首先需要訪問webpack.config.js文件。你可以通過鍵入

$ ng eject 

這將暴露您需要編輯的配置文件。請注意,在此之後,您需要使用「npm start」而不是「ng serve」啓動服務器。

對於HAML可以在webpack.config.js使用haml-haml-loader

npm install haml-haml-loader --save-dev 

然後在你的模塊的規則文件添加以下規則:

module: { 
    rules: [ 
    ... 
    { 
     test: /\.haml$/, 
     loaders: ['haml-haml-loader'] 
    }, 
    ... 

最後修改您的組件以下列方式使用您的「haml」文件:

@Component({ 
    selector: 'app', 
    template: require('./app.component.haml'), 
    styleUrls: ['./app.component.sass'], 
}) 

或者您可以使用

templateUrl: './app.component.haml', 

這應該讓你和同HAML運行

+0

你試過嗎?我擔心HAML會干擾Angular的模板語法並預處理結構指令 –

+2

是的,我已經嘗試過,它工作得很好。結構指令本身不是問題。我唯一恢復爲HTML的情況是沒有關聯值的指令,例如:

Something
。但是由於haml-haml-loader允許在haml模板中使用普通的html,所以對我來說這不是一個問題。 HAML語法如%div {* ngFor:「let item of items」}等工作正常。 – kbjerring

+1

嚇壞了!愛它。 – Plankton