繁体   English   中英

JSON / Jade-无法将JSON变量输出到Jade模板

[英]JSON / Jade - Cannot output JSON variable to Jade template

我正在将一些JSON数据传递到Jade模板,但似乎无法将JSON数据打印到我的Jade模板。 这是存储并传递给Jade模板的JSON示例:

{ name: 'Team 1',
  _id: 5134d71192cf972226000003,
  __v: 0,
  key: 1362417425623 }

它像这样传递到Jade模板:

res.render('tournamentDetails', { 'tournamentData' : tournamentData, seedsSerialized : JSON.stringify(tournamentData.teams) } );

Jade模板的格式为:

script(type='text/javascript')
                var seeds = [#{tournamentData.teams}];

我正在尝试在单独的JavaScript文件中访问此变量seeds ,但似乎无法访问它们。 我一直在测试使用alert来测试JavaScript文件中的种子中的内容,而不是团队。

这也是从Jade生成的HTML:

var seeds = [{ name: 'Team 1',
  _id: 5134d71192cf972226000003,
  __v: 0,
  key: 1362417425623 },{ name: 'Team 2',
  _id: 5139dc66b48da58d0e000001,
  __v: 0,
  key: 1362746470498 },{ name: 'Team 3',
  _id: 5139dda45f1598440f000001,
  __v: 0,
  key: 1362746788314 },{ name: 'Team 4',
  _id: 513b2c66cfd50dce11000001,
  __v: 0,
  key: 1362832486554 }];

我将如何通过JavaScript文件访问团队? 我想将teams names输出到Jade模板。

这可能不是确切的答案,但是评论太久了……

看看这个jsfiddle: http : //jsfiddle.net/KvXTA/

var seeds = [{ name: 'Team 1',
  _id: 5134d71192cf972226000003,
  __v: 0,
  key: 1362417425623 },{ name: 'Team 2',
  _id: 5139dc66b48da58d0e000001,
  __v: 0,
  key: 1362746470498 },{ name: 'Team 3',
  _id: 5139dda45f1598440f000001,
  __v: 0,
  key: 1362746788314 },{ name: 'Team 4',
  _id: 513b2c66cfd50dce11000001,
  __v: 0,
  key: 1362832486554 }];

console.log(seeds);

注意控制台如何输出

Uncaught SyntaxError: Unexpected token ILLEGAL

那是因为_id字段。 令您惊讶的是,序列化版本存在相同的问题,因为它应该在ID的引号中引起来。 如果根本不需要ID,则可以使用替换函数在序列化版本中删除它们。

var seedsSerialized = JSON.stringify(teams, function (key, val) {
    return key === '_id' ? undefined : val;
);
res.render('tournamentDetails', { seedsSerialized: seedsSerialized });

然后使用该序列化版本来初始化模板中的seeds

script
    var seeds = !{seedsSerialized};

我提早了包括脚本的命令的意见是不是,也许另一个文件被创建的种子可变关注的问题,这是你可能已经包括它使用的文件seeds之前seeds实际上宣告。

例如:

<script src='logSeeds.js'></script>
<script>
    var seeds = [ ... ];
</script>

其中的logSeeds.js是:

console.log(seeds);

显然将输出undefined因为尚未声明seeds 这只是一个想法,不一定是您的情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM