最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

NodeJs Twig ForEach无效

运维笔记admin10浏览0评论

NodeJs Twig ForEach无效

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。

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论