NodeJSとTwigを使用して学校プロジェクトの一部として小さなアプリケーションを構築しています。NodeJs Twig ForEachが機能しない
私は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
が印刷されます。セッションが空の場合、{{ Message }}
が印刷されます。
foreach内にのみ{{ "Hello World" }}
を書き込んでも出力が生成されません。
それ以外の場合は、タイトルのみを含むページになります。
EDIT:
Iがセッションにコンソールを使用すると、私はこれを取得:
にconsole.log(セッション)
未定義
[NataSession {
番号:901、
を 緯度:50.85,
経度:4.35,
観察:[]、
sessionEnd: '2017年12月8日午前5時15分00秒PM'、
sessionStart: '2017年12月8日午前5時06分00秒PM'、
ステータス: '拒否'、
に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});
セッションをダンプするとどうなりますか? iterableですか? – entio
これを質問に追加しました。私はhttps://twig.symfony.com/doc/2.x/tags/for.htmlにあるヘルパーを使用するための指示に従います。ここではhttps://www.w3schools.com/js/js_arrays.asp配列の作成。私の間違いで申し訳ありませんが、英語は私の母国語ではありません。 –