NodeJs Twig ForEach无效
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NodeJs Twig ForEach无效相关的知识,希望对你有一定的参考价值。
我正在使用NodeJS和Twig构建一个小型应用程序作为学校项目的一部分。
除了我的foreach声明外,打印数据没有任何问题。
我的看法 :
{% extends 'layout.twig' %}
{% block body %}
<h1>My sessions</h1>
{% for session in Sessions %}
<div class="container">
<h3>
{{ link(session.sessionStart,"/sessions/"+session.id) }}
</h3>
<p>Latitude : {{ session.latitude }}</p>
<p>Longitude : {{ session.longitude }}</p>
<p>Number of observations : {{ session.observations.length }}</p>
<p>Status : {{ session.status }}</p>
</div>
{% else %}
<p>{{ Message }}</p>
{% endfor %}
{% endblock %}
我确信数据存在于Sessions
。当我尝试输出第一个元素的id时,如下所示:
{{ Sessions[0].id }}
然后打印id
。当Sessions为空时,将打印{{ Message }}
。
在foreach中只写{{ "Hello World" }}
也不会产生任何输出。
否则,我最终会得到一个只包含标题的页面。
编辑:
当我在Sessions上使用控制台时,我得到了这个:
执行console.log(会话) 未定义 [NataSession { id:901, 纬度:50.85, 经度:4.35, 观察:[], sessionEnd:'2017年12月8日下午5:15:00', sessionStart:'2017年12月8日下午5:06:00', 状态:'拒绝', userId:1}]
我用这种方式构建它:
client.get(this.restBaseUrl+"sessions/user/"+user.id,function(data,response){
console.log(data);
console.log(response);
var Sessions = [];
var i=0;
for(i=0;i<data.length;i++){
Sessions.push(new NataSession());
Sessions[i].id = data[i].id ;
Sessions[i].latitude = data[i].latitude ;
Sessions[i].longitude = data[i].longitude ;
Sessions[i].observations= data[i].observations;
Sessions[i].sessionEnd = data[i].sessionEnd ;
Sessions[i].sessionStart= data[i].sessionStart;
Sessions[i].status = data[i].status ;
Sessions[i].userId = data[i].userId ;
}
var message = "";
if(data.length == 0){
message = "You don't have any sessions yet."
}
res.render('sessions', { title: 'Natagora - Sessions',Sessions:Sessions,Message:message});
答案
事实证明问题本身不是for,而是{{ link(session.sessionStart,"/sessions/"+session.id) }}
这是一个有效的代码:
{% extends 'layout.twig' %}
{% block body %}
<h1>My sessions</h1>
{% for session in Sessions %}
<div class="container" style="margin: 30px;padding:15px; background-color: gainsboro">
<h3>
<a href="{{ session.link }}">{{ session.sessionStart }}</a>
</h3>
<p>Latitude : {{ session.latitude }}</p>
<p>Longitude : {{ session.longitude }}</p>
<p>Number of observations : {{ session.observations.length }}</p>
<p>Status : {{ session.status }}</p>
<button>Share on Facebook</button>
</div>
{% else %}
<p>{{ Message }}</p>
{% endfor %}
{% endblock %}
link
是我添加的属性,在后端生成。它是会话页面的相对URL。
以上是关于NodeJs Twig ForEach无效的主要内容,如果未能解决你的问题,请参考以下文章
锚元素上的空 href 属性在 HTML 中有效,但在 Twig 中无效