如何将信息正确呈现到车把模板

时间:2019-05-27 09:58:55

标签: express webpack express-handlebars

从我的控制器渲染信息只会将信息传递到模板中包含的部分。

这是我在登录控制器中处理该问题的方法。检查提供的密码和用户名后,我将两个对象发送到要呈现到页面的仪表板模板

res.render(path.join(DIST_DIR, 'dashboard.hbs'), { 
                                    user,
                                    company
                                });

我可以记录此信息,可以看到它的存在,并且也可以在dashboard.hsb中包含的部分中呈现出来,但是似乎仪表板本身无法获取数据。

我的webpack设置

{
                // Loads the javacript into html template provided.
                // Entry point is set below in HtmlWebPackPlugin in Plugins 
                test: /\.hbs$/,
                loader: 'handlebars-loader',
                query: {
                    partialDirs: [
                        path.join(__dirname, './src/views/partials')
                    ],
                    helperDirs: [
                        path.join(__dirname, './src/helpers')
                    ]
                }
            },
new HtmlWebPackPlugin({
            filename: 'dashboard.hbs',
            title: 'Dashboard',
            chunks: ['dashboard', 'dashboard~login', 'vendors~dashboard', 'vendors~dashboard~login'],
            template: 'src/views/index/dashboard.hbs',
            excludeChunks: ['server']
        }),

因此,页面呈现得很好,并且我尝试传递的用户信息确实显示在部分信息中(由仪表板布局使用),但是我要显示在dashboard.hbs主体中的用户信息始终是空白。我似乎信息没有传递到此模板。

我要去哪里错了?我非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我使用了错误的加载程序。我没有使用handlebars-loader,而是更新了代码以使用html-loader

{
                // Loads the javacript into html template provided.
                // Entry point is set below in HtmlWebPackPlugin in Plugins 
                test: /\.hbs$/,
                loader: 'html-loader',
                query: {
                    partialDirs: [
                        path.join(__dirname, './src/views/partials')
                    ],
                    helperDirs: [
                        path.join(__dirname, './src/helpers')
                    ]
                }
            },

现在一切正常。希望这可以帮助其他人