首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态添加iron-list及其所有数据

动态添加iron-list及其所有数据
EN

Stack Overflow用户
提问于 2017-02-26 17:20:43
回答 1查看 326关注 0票数 1

我遇到了一个我无法解决的问题。我需要从代码中添加<iron-list>元素,分配它的项目等等。

我已经用谷歌搜索了好几天,但是在所有的例子中,我发现<iron-list>已经被添加到超文本标记语言中了。

我试过了:

代码语言:javascript
复制
var msgs = new List();//I've added some data to this list 
var listTab = new Element.div();
var list = new Element.tag("iron-list");
var template = new Element.tag("template");
var item = new Element.tag("paper-item");
item.innerHtml = "[[item.text]]";
template.children.add(item);
list.children.add(template);
list.items = msgs;
list.as = "item";
listTab.children.add(list);

这会导致以下错误:

代码语言:javascript
复制
iron-list requires a template to be provided in light-dom
Uncaught Unhandled exception:
TypeError: this.ctor is not a function

下面的代码会导致相同的错误:

代码语言:javascript
复制
var msgs = new List();//I've added some data to this list 
var listTab = new Element.div();
IronList list = new IronList();
var template = new Element.tag("template");
var item = new Element.tag("paper-item");
item.innerHtml = "[[item.text]]";
template.children.add(item);
list.children.add(template);
list.items = msgs;
list.as = "item";
listTab.children.add(list);

最后,我尝试了一个非常简单的解决方案,它也不起作用:

代码语言:javascript
复制
var list= new Element.html('<iron-list items="{{msgs}}" as="item"><template><paper-item>[[item.text]]</paper-item></template></iron-list>');
listTab.children.add(list);

错误:

代码语言:javascript
复制
Polymer::Attributes: couldn`t decode Array as JSON
Removing disallowed element <IRON-LIST> from [object DocumentFragment]
Removing disallowed element <PAPER-ITEM> from [object DocumentFragment]
Removing disallowed element <ARRAY-SELECTOR> from iron-list
Uncaught Unhandled exception:
Bad state: No element

我真的很感激从dart代码中添加<iron-list>元素的有效解决方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-26 18:14:39

代码语言:javascript
复制
var validator = new NodeValidatorBuilder.common()
  ..allowElement('iron-list', attributes: ['items', 'as'])
  ..allowElement(...);

var list= new Element.html('<iron-list items="{{msgs}}" as="item"><template><paper-item>[[item.text]]</paper-item></template></iron-list>',
    validator: validator);
listTab.children.add(list);

代码语言:javascript
复制
var list= new Element.html('<iron-list items="{{msgs}}" as="item"><template><paper-item>[[item.text]]</paper-item></template></iron-list>',
    treeSanitizer: NodeTreeSanitizer.trusted);
listTab.children.add(list);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42466747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档