【问题标题】:Duplicate values with Polymer template repeat使用聚合物模板重复重复值
【发布时间】:2015-06-13 03:31:21
【问题描述】:

好吧,我的聚合物模板发生了一件奇怪的事情

<polymer-element name="my-playlist" attributes="info">
    <template>
        <core-ajax url="/getlist" method="POST" auto response="{{data}}" handleAs="json">
        </core-ajax>
        
        <style>
        </style>
        <core-selector class="list">
            <template repeat="{{k in data}}">
                <core-ajax url="http://api.soundcloud.com/tracks/{{k.track}}.json?client_id=9a6dccd301f1d1cbab751e0a1ec82e2e" method="GET" auto response="{{response}}" handleAs="json">
                </core-ajax>
                <div class="item">
                    {{response.genre}}
                </div>
            </template>
        </core-selector>
    </template>
    <script>
        Polymer();
    </script>
</polymer-element>

我从中得到的是我得到的答复之一的重复。我得到三个正确的条目,但 {{response.genre}} 重复来自 ajax 调用的响应之一,而不是正确列出每个响应。我的结果如下:

  • 节奏布鲁斯
  • 节奏布鲁斯
  • 节奏布鲁斯

它应该是这样的:

  • 说唱
  • 节奏布鲁斯
  • 爵士乐

似乎我提出了所有正确的请求,但模板是 - 我如何正确处理每个响应,以便我列出所有响应而不是重复一个值?

任何帮助都会很棒。

【问题讨论】:

  • 您使用的是 Polymer 0.5 还是 1.0,因为您的代码看起来像 0.5 代码? 1.0 polymer-project.org/1.0/docs/devguide/templates.html#dom-repeat
  • 0.5。我应该升级以实现此功能吗?
  • 暂时不需要升级,只是想知道应该用什么代码来回答这个问题。
  • 我认为这是因为 response 被视为全局变量,所以你能帮我试一下吗?将 for 循环更改为 {k, i in data} 其中 i 是索引。然后将 ajax 响应更改为写入数组“response='{{response.i}}”'。最后,将 response.genre 更改为 response.i.genre。告诉我这是否有效。
  • 我得到一个空白值 - 当我只使用 {{i}} 时,我返回了正确的索引,但 {{response.i}} 没有返回任何内容,而且 {{response.i.genre}} 为空白。

标签: templates polymer repeat web-component


【解决方案1】:

问题是响应被视为一个全局变量,所以每次你运行重复时,它都会覆盖它。作为一种解决方案,您应该绑定到会改变每次重复的东西。

<template repeat="{{k in data}}">
    <core-ajax url="http://api.soundcloud.com/tracks/{{k.track}}.json?client_id=9a6dccd301f1d1cbab751e0a1ec82e2e" method="GET" auto response="{{k.response}}" handleAs="json">
    </core-ajax>
    <div class="item">
      {{k.response.genre}}
    </div>
</template>

【讨论】:

  • 我的模板看起来像这样&lt;template repeat="{{k, i in data}}"&gt;&lt;/template&gt; 编辑这个,我肯定会接受答案。
  • @MonsterWimp757 完成了,但是您将索引用于什么?
  • 我收回我的最后一个,哈哈,我不需要索引,你的原件是正确的。
  • 好的,删除了我的索引 xD
猜你喜欢
  • 1970-01-01
  • 2015-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-26
  • 2015-04-03
  • 1970-01-01
相关资源
最近更新 更多