Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 快速JS:车把;每一个;标记不显示内容_Javascript_Node.js_Typescript_Express_Handlebars.js - Fatal编程技术网

Javascript 快速JS:车把;每一个;标记不显示内容

Javascript 快速JS:车把;每一个;标记不显示内容,javascript,node.js,typescript,express,handlebars.js,Javascript,Node.js,Typescript,Express,Handlebars.js,我使用的是Express JS和Handlebar软件包,实际上我遇到了一些奇怪的事情。我不知道我是否遗漏了什么,希望如此,但我无法找出代码中的错误 我正在使用: 我无法使{{{each}}语句在我的代码中工作 以下是我所拥有的: 视图。ts const Views = { config: { // views template configuration extname: '.hbs', helpers: { mo

我使用的是Express JS和Handlebar软件包,实际上我遇到了一些奇怪的事情。我不知道我是否遗漏了什么,希望如此,但我无法找出代码中的错误

我正在使用:

我无法使
{{{each}}
语句在我的代码中工作

以下是我所拥有的:

视图。ts

const Views = {
    config: {
        // views template configuration
        extname: '.hbs',
        helpers: {
            modulesList: () => {
                return appModules.modulesList();
            },
            foo: () => { return 'FOO!'; },
            bar: ['tic', 'tac', 'toe'],
            // bar: () => { return ['tic', 'tac', 'toe'] },
        }
    },
}

// Views is exported
const exphbs  = require('express-handlebars');
const views = require('twiice/views.ts');

app.engine('.hbs', exphbs(views.config));
app.set('view engine', '.hbs');
app.set('views', './twiice/views');
<div class="col">
    {{#each bar}}
       <h6 class="text-light text-uppercase ls-1 mb-1">{{foo}}</h6>
    {{/each}}
    <h6 class="text-light text-uppercase ls-1 mb-1">Overview</h6>
    <h5 class="h3 text-white mb-0">Sales value</h5>
    <h6 class="text-light text-uppercase ls-1 mb-1">{{foo}}</h6>
</div>
应用程序ts

const Views = {
    config: {
        // views template configuration
        extname: '.hbs',
        helpers: {
            modulesList: () => {
                return appModules.modulesList();
            },
            foo: () => { return 'FOO!'; },
            bar: ['tic', 'tac', 'toe'],
            // bar: () => { return ['tic', 'tac', 'toe'] },
        }
    },
}

// Views is exported
const exphbs  = require('express-handlebars');
const views = require('twiice/views.ts');

app.engine('.hbs', exphbs(views.config));
app.set('view engine', '.hbs');
app.set('views', './twiice/views');
<div class="col">
    {{#each bar}}
       <h6 class="text-light text-uppercase ls-1 mb-1">{{foo}}</h6>
    {{/each}}
    <h6 class="text-light text-uppercase ls-1 mb-1">Overview</h6>
    <h5 class="h3 text-white mb-0">Sales value</h5>
    <h6 class="text-light text-uppercase ls-1 mb-1">{{foo}}</h6>
</div>
home.hbs

const Views = {
    config: {
        // views template configuration
        extname: '.hbs',
        helpers: {
            modulesList: () => {
                return appModules.modulesList();
            },
            foo: () => { return 'FOO!'; },
            bar: ['tic', 'tac', 'toe'],
            // bar: () => { return ['tic', 'tac', 'toe'] },
        }
    },
}

// Views is exported
const exphbs  = require('express-handlebars');
const views = require('twiice/views.ts');

app.engine('.hbs', exphbs(views.config));
app.set('view engine', '.hbs');
app.set('views', './twiice/views');
<div class="col">
    {{#each bar}}
       <h6 class="text-light text-uppercase ls-1 mb-1">{{foo}}</h6>
    {{/each}}
    <h6 class="text-light text-uppercase ls-1 mb-1">Overview</h6>
    <h5 class="h3 text-white mb-0">Sales value</h5>
    <h6 class="text-light text-uppercase ls-1 mb-1">{{foo}}</h6>
</div>

{{{#每个酒吧}
{{foo}}
{{/每个}}
概述
销售价值
{{foo}}
实际上,
foo
显示在html代码的最后一个h6上,这意味着已加载帮助程序

但是
每个
语句都没有为
显示任何内容

在文件之后:

我看不出有什么不对劲:/

非常感谢你的帮助,我还在学习呢!:)


在此处填写代码:

您没有正确使用
帮助程序

是功能。当您想在模板中使用帮助器时,可以在把手表达式中使用它,如
{{{uppercase firstName}}
。在这个表达式中,
uppercase
是我们定义的帮助程序的标识符,
firstName
是数据上下文对象中的一个变量,它将传递给我们的
uppercase
帮助程序

表达式
{{#each bar}
告诉Handlebar调用数据上下文对象中变量
bar
上的

但是,
bar
在数据上下文对象中不存在,因为
bar
不是我们数据的一部分,而是我们定义的另一个助手。所以我们的问题是:我们如何在同一个把手表达式中调用两个助手

车把有这个问题的答案;它是。它只需要将内部表达式用括号括起来

这意味着将您的代码更新为
{{{#each(bar)}
将足以告诉Handlebar,
bar
是我们想要调用的帮助程序,并且我们想要将其返回值传递给
#each


我已经创建了一个供您参考的文档。

您好!谢谢你的编辑,我正在尽我最大的努力学习英语,但我仍然会犯错误。但是非常感谢你的回答,这对我来说是非常清楚和可以理解的!我已经编辑了我的代码,现在它工作得很好。我不明白助手是如何工作的,现在我明白了。非常感谢@文森特:谢谢你的友好回复。我很高兴能帮上忙。