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,你可以在序列化的版本中使用replacer函数来删除它们。
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>
console.log(seeds);
显然会输出undefined
,因为seeds
还没有被声明。这只是一个想法,不一定是你的情况
相关文章:
- 将JSON传递给Jade,并使用相同的数据进行API访问
- 在Jade中解析JSON
- 在Jade中渲染JSON对象名称
- Jade/PUG JSON interpolation
- 如何访问JSON中的数组并在Jade中迭代
- 如何使用Jade和Node.js迭代JSON数组
- 如何让Jade的外部JSON从Express渲染
- 为什么获胜't我的json对象的`email`属性显示在我的jade模板中
- JADE&NodeJS访问JSON对象属性数组
- 我怎么能用json而不是jade发送响应呢
- 使用Jade在JSON中循环特定的密钥
- 如何获取从express JSON数组传递的单个元素,并在Jade中输出
- 使用Jade、HTML5和jQuery从JSON数据中获取动态内容
- Jade不渲染外部JSON
- 如何解析Rest Api json响应并将数据插入到Jade模板(Node.js + express)
- 在Jade中解析JSON
- 如何在jade中渲染json对象并通过结果循环
- 将JSON API响应传递给JADE for循环
- 使用Jade和express访问对象中的json对象
- JSON / Jade -不能输出JSON变量到Jade模板