聚合物数据绑定的奇怪行为

时间:2015-04-12 16:44:19

标签: data-binding polymer

假设我有三个标签,每个标签中的内容都是通过core-ajax

获取的
       <core-ajax auto url="http://example.com/tab.json" handleAs="json" 
response="{{response}}"></core-ajax>


<paper-tabs id="tabs" selected="{{response[0].name}}" flex  >
              <template repeat="{{mytab as t}}">
                <paper-tab name="{{t.name}}">{{t.name}}</paper-tab>
              </template>
</paper-tabs>




 Polymer({
      responseChanged:function(response){
         this.mytab= this.response;
         console.log(this.mytab[0].name);
      }
    });

上面的代码显示正常,但令我困惑的是,当我点击除第一个以外的其他两个选项卡时,第一个选项卡名称(即内容)会相应地更改为单击了哪个选项卡的名称。不能得到那个,有人可以向我解释一下吗?

由于

1 个答案:

答案 0 :(得分:0)

我找到了解决这个问题的解决方案,但我不知道这是正确的方式还是最好的方式:

  <core-ajax auto url="http://example.com/tab.json" handleAs="json" 
response="{{response}}"></core-ajax>

                                  (changed)
<paper-tabs id="tabs" selected="{{defaulttab}}" flex  >
              <template repeat="{{mytab as t}}">
                <paper-tab name="{{t.name}}">{{t.name}}</paper-tab>
              </template>
</paper-tabs>




 Polymer({
      responseChanged:function(response){
         this.mytab= this.response;
         this.defaulttab = this.response[0].name;(added)
         console.log(this.mytab[0].name);
      }
    });

这可以按预期工作。