是否可以将像JSON数组这样的复杂数据传递给动态实例化的自定义元素?
我想实例化一个传递给他一个大JSON数组的元素。 对于JSON数组的每一行,此元素将启动子元素,并将它们传递给JSON行。 我想知道如何将JSON数据传递给dinamically instantiated元素
像:
<my-list>
元素将通过首先检索JSON数据然后使用新获取的数据动态创建子元素来填充自身
对于每一行,它将以编程方式(从dart文件)创建<my-list-item myData="">
,将给定的JSON数组行传递给<my-list-item>
元素myData
有可能吗?如果是,那么在创建子元素时如何传递数据?
我目前相当于my-list.dart:
@PolymerRegister('my-list')
class my-list extends PolymerElement {
@property int listSize; // number of blink tickets per panel
MyList.created() : super.created() {
//retrietve
JSON data = //will find later how to use JSON
//Init
initializeList(data);
}
void initializeList(JSON data) {
for row in data {
BlinkTicket ticket = new BlinkTicket(row);
}
}
}
我的list-item.dart:
@PolymerRegister('my-list-item')
class MyListItem extends PolymerElement {
@property JSON data;
factory MyListItem() => new Element.tag('my-list-item');
MyListItem.created() : super.created() {
//init self with data
}
}
答案 0 :(得分:1)
<dom-module id="my-list-item>
...
</dom-module>
@PolymerRegister('my-list-item')
class MyListItem extends PolymerElement {
factory MyListItem() => new Element.tag('my-list-item');
MyListItem.created() : super.created();
@property Map data;
}
然后从未来的父元素中实例化它,如
List json = JSON.decode(getSomeJson());
for(var item in json) {
var some = new SomeElement();
Polymer.dom(root).append(some);
// or to add it to the light DOM instead of the shady/shadow DOM
// Polymer.dom(this).append(some);
some.set('data', item);
}
(未经测试)