adonisjs嵌套forloop(清醒的关系)

时间:2016-11-20 13:26:40

标签: javascript node.js

我对forloop中来自Lucid Relationships的adonisjs中的嵌套对象中的值有疑问。我是adonisjsnodejs的新手。

请看下面的代码。这是来源:

const products = yield Products
    .query()
    .with('ToProductImages')

稍后会将这些内容推送到购物车会话中。

这是以下const的结果:

    [ { id: 1,
      price: 33.95,
      collections_id: 1,
      ToProductImages:
       [ { id: 1,
           price: 33.95,
           collections_id: 1,
           _pivot_product_id: 1,
           _pivot_image_id: 1 } ] } ],

将项目传递到视图后,这是我制作的forloop。

    <div class="col s12 m12">
        <table>
            {% for key1,value in cartlist %}
                <li>{{ key1.id }}</li>
                {% for key2,value in key1.ToProductImages %}
                    <li>{{ key2.id }}</li>
                {% endfor %}
            {% endfor %}
        </table>
    </div>

输出是第一个forloop正常工作,ID显示没有问题。

第二个forloop根本不起作用。我不知道如何调试Key.ToProductImages,因为我认为它在视图中是不可能的。

1 个答案:

答案 0 :(得分:0)

首先,你能给出你目前的输出吗?目前尚不清楚什么是行不通的。 第二;当我看到你的forloops时,我注意到可能与你的问题有关的三件事:

  • 在第一个for循环中,您为键值提供'key1',为与该键连接的value-content提供'value'。 如果我理解正确,这意味着您的购物车包含产品,并且每种产品都是有价值的。然后调用'id'和ToProductImages。
  • 在第二个for循环中,您为键值提供'key2',为与ToProductImages中的键相关联的值内容提供'value'。 我不知道adonisjs,但通常如果你在同一个for循环中给出相同的值,你将覆盖前一个。所以key1-value现在是key2-value的值。
  • 您还将数组key1.ToProductImages作为基础,但key1仅包含键(例如,1,2,3),而不包含值。对于key1.id等也一样。

试试这个:

    <div class="col s12 m12">
    <table>
        {% for key1,value1 in cartlist %}
            <li>{{ value1.id }}</li>
            {% for key2,value2 in value1.ToProductImages %}
                <li>{{ value2.id }}</li>
            {% endfor %}
        {% endfor %}
    </table>
</div>