2012-01-16 31 views
6

Express.js ile çalışmak için kalıp şablonu altyapısı almaya çalışıyorum. Benim ilk girişimdi bu:Express.js özel şablon altyapısı (plaka)

app.register('.html', { 
    compile: function (str, options) { 
     var template = new plate.Template(str); 
     return function(locals) { 
      return template.render(locals, function(err, data) { 
       return data; 
      }); 
     } 
    } 
}); 

Sorun template.render (tanımlanmamış) bir şey döndürmez olduğunu ancak bir geri veri geçiren görüyoruz. Bu durumda Express'in derleme işlevi çağrıldığında çağrılan bir şablonu doğrudan döndüren bir işlev döndürmesi beklendiği için nasıl çalışacağından emin değilim.

Belki de bu sorunu çözmek için vaatleri kullanabileceğimi düşünüyordum, ancak ekspres kodun iade edilmesine dair bir söz beklemediğinden bu yana hiçbir başarı elde edemedim. Im yüzden sadece yanlış yapıyor olabilir değil de sözlerini hızlandırmak için:

İşte
app.register('.html', { 
    compile: function (str, options) { 
     var promise = new Promise(); 
     var template = new plate.Template(str); 
     return function(locals) { 
      template.render(locals, function(err, data) { 
       promise.resolve(data); 
      }); 
      return promise; 
     } 
    } 
}); 

işleryapanlara özel uygulamasının bir örnektir. {% Block%} etiketi kadar harika olduğundan gerçekten Levha şablonlarını kullanmak istiyorum

app.register('.html', { 
    compile: function (str, options) { 
     var template = _.template(str); 
     return function (locals) { 
      return template(locals); 
     }; 
    } 
}); 

: Fark şablonları şablonu() fonksiyonu doğrudan render dize şöyle döndüren çizgi olduğunu. Herhangi bir yardım takdir edilir.

ilgili belgeler:

plate's github docs

express.js app.register docs

+0

Plaka yaratıcısı, bunu istediğimde ifade ile uyumlu hale getirmek için projeye hemen bir yama ekledi. [email protected]+ değişikliğe sahiptir ve uygulama detaylarını görebilirsiniz [https://github.com/chrisdickinson/plate/wiki/Getting-Started---In-Node] – joshontheweb

+1

Bu soru ve sonra doğruysa kabul et! – tjarratt

cevap

5

plakanın yaratıcısı derhal bu sorulan sonra express ile uyumlu hale getirmek için projeye bir yama eklendi. [email protected]+ değişikliğe uğradı ve uygulama ayrıntılarını görebiliyorsunuz here