2016-07-25 60 views
5

簡單的問題在這裏,但我沒有找到有用的資源。 Electron中可以模板化嗎?使用Jade或Handlebars顯示動態模板?我知道有.loadURL()需要一個靜態html文件。電子模板?

動態可能嗎?

謝謝。

回答

2

通過在Electron主進程中運行本地服務器,可以使用Jade或Handlebars進行動態模板化。但是我不會推薦這個,因爲它有點落後。 Electron主要是一個前端框架,而運行本地服務器對於某些事情來說是有益的,但模板並不是其中之一。

大多數人使用像Angular或React這樣的前端JS框架。

+0

把手非常適合前端環境。 – Marty

+0

這是真的......更不用說,例如。 Angular擁有自己的模板功能,並且是爲MVC模式設計的,因此它不需要像另一個模板引擎那樣的額外覆蓋。 對於Node.js是的,但對於電子編號。 – devarni

2

您可以通過protocol.registerBufferProtocol註冊新的緩衝區協議。

main.js

var electron = require('electron'); 
var app = electron.app; 
var protocol = electron.protocol; 
var BrowserWindow = electron.BrowserWindow; 
var pug = require('pug'); 

var window; 

app.on('ready', function() { 

    // Define the `pug` scheme 
    protocol.registerBufferProtocol('pug', function (request, callback) { 
    var url = path.normalize(request.url.substr(7)); 
    var content = pug.renderFile(url); 
    callback({ 
     mimeType: 'text/html', 
     data: new Buffer(content) 
    }); 
    }); 

    window = new BrowserWindow({width: 600, height: 600}); 

    // Load your file using the `pug` protocol 
    window.loadURL(url.format({ 
    pathname: path.join(__dirname, 'index.pug'), 
    protocol: 'pug:', 
    slashes: true 
    })); 

}); 

index.pug

html 
    head 
    title My title 
    body 
    h1 Hello world! 
0

可能爲時已晚在這裏補充,但認爲它可能是值得的。我添加了一個包來處理從任何渲染器添加視圖並處理資產路徑。到目前爲止,我剛剛添加了ejs渲染器,但是計劃添加帕格和哈姆作爲其他默認渲染器,但很容易擴展和添加自己的渲染器。該軟件包被稱爲電子查看渲染器https://www.npmjs.com/package/electron-view-renderer

希望這可以幫助像它這樣的人做我們的團隊。它處於起步階段,所以所有的意見和貢獻值得歡迎