聚合物进料值秒 dom-repeat
Polymer feed value into second dom-repeat
我正在尝试在 dom-repeat 中使用 dom-repeat 而不是 json 数组中的 json 数组。如何将第一个数组的值传递给第二个 dom-repeat?
为了说明,我有以下 json 数组可以正常加载:
"books": [
{
"title": "book1",
"slug": "b1",
"authors": ["author1","author2"],
"blurb": "Some text"
},
{
"title": "book2",
"slug": "b2",
"authors": ["author2","author3"],
"blurb": "some more text"
}]
我正在遍历数组 'books' 并检索标题和简介。然后在下面,我希望列出每本书的两位作者,并且我还希望以 /slug/author (f.i. /b1/author1) 的格式为每本书添加一个 link。但是因为在第二个dom-repeat中我重新定义了"items",'slug'就没有了。我该怎么做?
<template>
<iron-ajax
auto
url="somelist.json"
handle-as="json"
last-response="{{someList}}"></iron-ajax>
<template is="dom-repeat" items="{{someList.books}}">
<paper-collapse-group>
<paper-collapse-item header$="{{item.title}}">
<p>{{item.blurb}}</p>
</paper-collapse-item>
<template is="dom-repeat" items="{{item.authors}}">
<a href$="/[[slug]]/[[item]]">{{item}}</a></div>
</template>
</paper-collapse-group>
</template>
</template>
我也是 Polymer 的新手,所以感谢您帮助我学习!
所以你可以做的是创建另一个元素,假设它看起来像:
<dom-module id="authors">
<template>
<template is="dom-repeat" items="[[authors]]">
<a href$="/[[slug]]/[[item]]">[[item]]</a>
</template>
</template>
<script>
Polymer({
is: 'authors',
properties: {
authors: Array,
slug: String
},
});
</script>
</dom-module>
然后将其注入到您的代码中,例如:
<template is="dom-repeat" items="[[someList.books]]">
<paper-collapse-group>
<paper-collapse-item header$="[[item.title]]">
<p>[[item.blurb]]</p>
</paper-collapse-item>
<authors slug="[[item.slug]]" authors="[[item.authors]]"></authors>
</paper-collapse-group>
</template>
使用 as
属性为 item
属性 使用自定义名称。
示例:
<template>
<iron-ajax
auto
url="somelist.json"
handle-as="json"
last-response="{{someList}}"></iron-ajax>
<template is="dom-repeat" items="{{someList.books}}" as="book">
<paper-collapse-group>
<paper-collapse-item header$="{{book.title}}">
<p>{{book.blurb}}</p>
</paper-collapse-item>
<template is="dom-repeat" items="{{book.authors}}" as="author">
<a href$="/[[book.slug]]/[[author]]">{{author}}</a></div>
</template>
</paper-collapse-group>
</template>
</template>
我正在尝试在 dom-repeat 中使用 dom-repeat 而不是 json 数组中的 json 数组。如何将第一个数组的值传递给第二个 dom-repeat?
为了说明,我有以下 json 数组可以正常加载:
"books": [
{
"title": "book1",
"slug": "b1",
"authors": ["author1","author2"],
"blurb": "Some text"
},
{
"title": "book2",
"slug": "b2",
"authors": ["author2","author3"],
"blurb": "some more text"
}]
我正在遍历数组 'books' 并检索标题和简介。然后在下面,我希望列出每本书的两位作者,并且我还希望以 /slug/author (f.i. /b1/author1) 的格式为每本书添加一个 link。但是因为在第二个dom-repeat中我重新定义了"items",'slug'就没有了。我该怎么做?
<template>
<iron-ajax
auto
url="somelist.json"
handle-as="json"
last-response="{{someList}}"></iron-ajax>
<template is="dom-repeat" items="{{someList.books}}">
<paper-collapse-group>
<paper-collapse-item header$="{{item.title}}">
<p>{{item.blurb}}</p>
</paper-collapse-item>
<template is="dom-repeat" items="{{item.authors}}">
<a href$="/[[slug]]/[[item]]">{{item}}</a></div>
</template>
</paper-collapse-group>
</template>
</template>
我也是 Polymer 的新手,所以感谢您帮助我学习!
所以你可以做的是创建另一个元素,假设它看起来像:
<dom-module id="authors">
<template>
<template is="dom-repeat" items="[[authors]]">
<a href$="/[[slug]]/[[item]]">[[item]]</a>
</template>
</template>
<script>
Polymer({
is: 'authors',
properties: {
authors: Array,
slug: String
},
});
</script>
</dom-module>
然后将其注入到您的代码中,例如:
<template is="dom-repeat" items="[[someList.books]]">
<paper-collapse-group>
<paper-collapse-item header$="[[item.title]]">
<p>[[item.blurb]]</p>
</paper-collapse-item>
<authors slug="[[item.slug]]" authors="[[item.authors]]"></authors>
</paper-collapse-group>
</template>
使用 as
属性为 item
属性 使用自定义名称。
示例:
<template>
<iron-ajax
auto
url="somelist.json"
handle-as="json"
last-response="{{someList}}"></iron-ajax>
<template is="dom-repeat" items="{{someList.books}}" as="book">
<paper-collapse-group>
<paper-collapse-item header$="{{book.title}}">
<p>{{book.blurb}}</p>
</paper-collapse-item>
<template is="dom-repeat" items="{{book.authors}}" as="author">
<a href$="/[[book.slug]]/[[author]]">{{author}}</a></div>
</template>
</paper-collapse-group>
</template>
</template>