Polymer 铁表模板的动态编辑
首先,我知道,关于铁名单有很多问题。但主要是关于编辑项目,而不是铁名单中的整个模板 我的代码非常复杂,发布它毫无意义。我正在处理使用Polymer 铁表模板的动态编辑,polymer,polymer-1.0,iron-list,Polymer,Polymer 1.0,Iron List,首先,我知道,关于铁名单有很多问题。但主要是关于编辑项目,而不是铁名单中的整个模板 我的代码非常复杂,发布它毫无意义。我正在处理使用铁名单的数据表。我有一个名为钻石清单的元素,在这个钻石清单中我有铁清单 您可以像这样对其进行映像:父元素定义,其中包含一些内容,子元素(菱形列表)将此模板呈现为一个表 当然,菱形列表在我的应用程序中被多次使用,并且总是使用不同的模板。例如:页面用户有带有userID、userName等的列。。在页面stations上有stationID、address等列。。具有不
铁名单
的数据表。我有一个名为钻石清单
的元素,在这个钻石清单
中我有铁清单
您可以像这样对其进行映像:父元素定义
,其中包含一些内容,子元素(菱形列表)将此模板呈现为一个表
当然,菱形列表
在我的应用程序中被多次使用,并且总是使用不同的模板。例如:页面用户有带有userID、userName等的列。。在页面stations上有stationID、address等列。。具有不同的列数。每个页面都有自己的
,我正试图将其传播到菱形列表中。例如:
<diamond-listing as="user" id="permissionsTable" type="pagination" pagination-items-per-page="6" header-data="{{headerData}}" address="/user/" loading="{{loading}}">
<div id="test" slot="content">
<template>
<div class="diamond-row" on-tap="_openUrl" info$="/user/[[user.id]]">
<diamond-item text="{{user.username}}"></diamond-item>
<diamond-item text="{{user.partner.name}}"></diamond-item>
</div>
</template>
</div>
</diamond-listing>
没有成功
2) 在HTML中定义没有任何模板的空铁列表。然后在javascript中动态添加模板。没有成功。(铁名单正在哭泣,需要模板)
3) 使用document.createElement
var test = this.querySelector("#test template");
var list = document.createElement("iron-list");
list.appendChild(test);
list.as = this.as;
list.items = [{"username":"test","partner":{"name":"Test partner","id":1}}];
list.id = "diamondList";
结果:与2)相同
有没有办法更新模板
,该模板用于呈现铁名单中的所有项目
或者在JS中使用定义的模板创建铁清单
还是用dom重复?清单中的项目不会超过10个,因为它是完全分页的清单。(这可能是最简单的解决方案,但我不知道如何为每次迭代渲染
。这里有一个通用答案,不知道它是否适用于您的案例:
在Polymer中,操作DOM的推荐方法是通过操作数据,而不是通过removeChild或appendChild
比如说,
- 如果用户列表为:var users_array=[…]
创建铁名单如下:
<iron-list date="users_array">
<template>
...
<template>
</iron-list>
...
- 在users\u数组中添加和删除元素将影响铁名单
马上
这里有一个一般性的答案,不知道它是否适用于您的情况:
在Polymer中,操作DOM的推荐方法是通过操作数据,而不是通过removeChild或appendChild
比如说,
- 如果用户列表为:var users_array=[…]
创建铁名单如下:
<iron-list date="users_array">
<template>
...
<template>
</iron-list>
...
- 在users\u数组中添加和删除元素将影响铁名单
马上
如果使用dom,或者在铁名单中使用隐藏的
<iron-list items="[[items]]">
<template>
<template is="dom-if" if="[[item.isType1]]">
<!-- item1 -->
</template>
<template is="dom-if" if="[[item.isType2]]">
<!-- item2 -->
</template>
</template>
</iron-list>
如果使用dom,或者在铁名单中使用隐藏的
<iron-list items="[[items]]">
<template>
<template is="dom-if" if="[[item.isType1]]">
<!-- item1 -->
</template>
<template is="dom-if" if="[[item.isType2]]">
<!-- item2 -->
</template>
</template>
</iron-list>
绝对不是。我有绝对不同的模式和需要更改的所有内容。有不同的元素、不同的元素、绑定、点击事件等等。所以绝对不是这样。每个列表都有自己的模板,需要明确呈现。我有绝对不同的模式和需要更改的所有内容e、 有不同的元素,不同的绑定,点击事件等等。所以绝对不是这样。每个列表都有自己的模板,需要渲染。谢谢你的回答。这将是伟大的,直到你的应用程序有不到5页+-…我的应用程序是大的,想象一个文件有20个(未来甚至更多)它里面有不同的模板。真是一团糟,不是吗?但你是对的,这可能会奏效。如果有人找到更好的解决方案,我会等上几天。你可以为每种类型的布局都提供一个元素。因此在每个dom if
中,if
只需要一行代码就可以将当前项传递到正确的布局元素。这样更好。但是不是吗“导入的数量不是有点问题吗?我正在努力避免多余的导入。因为我认为这会导致加载屏幕变慢。对吗?我不能肯定。您是否尝试过Lighthouse chrome扩展来做一些性能指标?谢谢您的回答。在您的应用程序少于5页之前,这将非常好。”+-…我的应用程序很大,想象一个文件有20个(将来甚至更多)它里面有不同的模板。真是一团糟,不是吗?但你是对的,这可能会奏效。如果有人找到更好的解决方案,我会等上几天。你可以为每种类型的布局都提供一个元素。因此在每个dom if
中,if
只需要一行代码就可以将当前项传递到正确的布局元素。这样更好。但是不是吗导入的数量不是有点问题吗?我正在努力避免多余的导入。因为我认为这会导致加载屏幕变慢。对吗?我不能肯定。您是否尝试过Lighthouse chrome扩展来做一些性能指标?