Handlebars部分显示名称而不是loopback中的模板

时间:2016-02-26 03:04:13

标签: handlebars.js loopbackjs

我有一个部分显示名称的有线问题,而不是环回中的模板本身。由于某种原因,部分人没有登记。以下是我的代码......我确信我错过了一些东西,但却无法弄明白。所有人都很感激。我使用快速把手作为环回和把手之间的桥梁

在server.js中,我有以下代码

var handlebars  = require('handlebars');
var exphbs      = require('express-handlebars');

var hbs = exphbs.create({
    defaultLayout : '',
    helpers       : {},
    extname       : 'handlebars'
});

app.engine('handlebars', hbs.engine);
app.set('view engine', 'handlebars');
app.set('views', __dirname + '/../client/views');

以下是我的快递路由器代码......

 router.get('/', function(req, res) {
     res.render('index', {
         partials: {
            mypartial : 'awesomepartial'
         },
     });
 });

...以及索引页面中的部分标记。部分页面只是简单的HTML代码

{{> mypartial}}

....当索引模板被执行时,而不是看到来自awesomepartial.handlebars模板的文本(与index.handlebars位于同一目录中),我看到以下文字

awesomepartial

我可能做错了什么?为什么把手发回部分名称而不是模板代码。我尝试了各种组合,这让我相信路径可能不是问题。

2 个答案:

答案 0 :(得分:3)

以下是工作代码......

var handlebars  = require('handlebars');
var exphbs      = require('express-handlebars');

var hbs = exphbs.create({
    defaultLayout : '',
    helpers       : {},
    partialsDir   :  __dirname + '/../client/views',
    extname       : 'handlebars'
});

app.engine('handlebars', hbs.engine);
app.set('view engine', 'handlebars');
app.set('views', __dirname + '/../client/views');


router.get('/', function(req, res) {
   res.render('index', {
       mypartial : 'awesomepartial'
   });
});

{{> (lookup . 'mypartial'}}

答案 1 :(得分:0)

我相信你需要使用动态部分,这样就完成了:

{{> (mypartial)}}

基本上只是用parens包装变量。请参阅" Dynamic Partials"的文档。在这里:http://handlebarsjs.com/partials.html