Im學習Angular並試圖將其構建到我現有的Node.js框架中。在加載節點之前預編譯Angular.js模板
角之前,我用Handlebars.js作爲我的模板引擎&將使用節點然後用HTML模板編譯構建上下文寫頭,基本上加載HTML這樣前:
res.writeHead(200, { 'Content-Type': 'text/html' });
for(var i = 0; i < files.length; ++i) {
var source = files[i].toString('utf8');
// Handlebars
var template = Handlebars.compile(source);
var html = template(context);
res.write(html);
}
res.end();
現在,因爲Angular在客戶端,所以我必須先加載DOM模板,然後讓Angular獲得並編譯這些數據,這不僅會產生明顯的延遲,而且從編碼的角度來看似乎很麻煩,因爲我必須使用一個服務器端控制器加載DOM,然後使用另一個角度用於獲取所需數據的服務器端控制器。
1)裝載HTML模板:
res.writeHead(200, { 'Content-Type': 'text/html' });
for(var i = 0; i<files.length; ++i) {
var html = files[i].toString('utf8');
res.write(html);
}
res.end();
2)負載角控制器
app.controller('testCtrl', function($scope, $http) {
$http.get('/test').then(function(response){
$scope.context = response.data;
});
}
3)角控制器調用服務器側控制器搶&返回範圍
if(req.method==='GET'){
var context = {test : 'this is the test context'};
res.json(context);
}
有沒有什麼方法可以使用Angular BEFORE t預先編譯帶上下文的模板他的模板被加載?這種事情通常如何完成?
我安裝了EJS模板來初始化應用程序,然後使用角度。謝謝! – yevg