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扩展来做一些性能指标?