1

我有一个扁平的字符串数组,protocol.domainNames = ["a", "b", "c"]我正在尝试使用此模板在组件内呈现它:

    <select id="select-domain">
      <option>Select domain</option>
      <template is="dom-repeat" items="{{protocol.domainNames}}" as="domainName">
        <option value="{{index}}">{{domainName}}</option>
      </template>
    </select>

不幸的是,我得到了一个<option>空的 s 列表:

空选项列表

文档中的所有示例都显示包含对象的列表,我找不到任何关于不支持平面列表的信息。我究竟做错了什么?

[编辑]所以这个问题似乎有点复杂,请参阅这个 plunker以供参考。事实证明,将新项目推向protocol.domainNames会导致问题。

4

2 回答 2

3

你需要做

this.push('protocol.domainNames', item);

代替

protocol.domainNames.push(item)

以便 Polymer 可以看到您的数据发生变化。

相关文档可在https://www.polymer-project.org/1.0/docs/devguide/templates.html#dom-repeat找到

于 2015-06-12T02:11:47.343 回答
1

另外,我发现此时最好避免使用字符串数组,因为双向绑定不起作用。我将我的对象序列化为对象数组,然后工作相对较好。Polymer GitHub 上的问题。https://github.com/Polymer/polymer/issues/1821#issuecomment-110804603

于 2015-06-12T08:13:13.867 回答