Polymer 自动节点查找不工作

Polymer 自动节点查找不工作,polymer,Polymer,我正在尝试运行以下程序(受示例启发)。我想访问loveCount{{post.uid}span元素,并在点击favorite时将其递增1 <post-card favorite="{{post.favorite}}" on-favorite-tap="{{handleFavorite}}" hidden?="{{show == 'favorites' && !post.favorite}}"> <img src="

我正在尝试运行以下程序(受示例启发)。我想访问
loveCount{{post.uid}
span元素,并在点击favorite时将其递增1

<post-card
      favorite="{{post.favorite}}"
      on-favorite-tap="{{handleFavorite}}"
      hidden?="{{show == 'favorites' && !post.favorite}}">
      <img src="../images/{{post.avatar}}.svg" width="70" height="70">
      <h2>{{post.username}}</h2>
      <p>{{post.text}}</p>
      <p class="loveCount"><span id="loveCount_{{post.uid}}">{{post.loveCount}}</span></p>
</post-card>

<script>
 Polymer({
  handleFavorite: function(event, detail, sender) {
  var post = sender.templateInstance.model.post;

  if(post.favorite) {
    //hardcoding uid = '1', just to check if its working, but its not!
    console.log(this.$.loveCount_1);
  }
  this.$.service.setFavorite(post.uid, post.favorite);
  }
 });

</script>

{{post.username}
{{post.text}

{{post.loveCount}

聚合物({ handleFavorite:函数(事件、细节、发送者){ var post=sender.templateInstance.model.post; if(post.favorite){ //硬编码uid='1',只是为了检查它是否工作,但它不是! console.log(this.$.loveCount_1); } 此.$.service.setFavorite(post.uid,post.favorite); } });

你知道我哪里做错了吗?

我想你想得不对;正如您在评论中所建议的,数据绑定就是答案

有几个不同的地方可以将数据绑定连接在一起;一种非常简单的方法是在每个
上定义一个
loveCount
属性,在
中显示该值,然后在
处理程序中增加该值

您可以在的第50、55和63行中看到更改


与示例更为一致的是,您可能希望将
loveCount
定义为读入的
posts.json
文件的每个项的属性,或者处理从
处的模板中显示
loveCount
。有很多方法可以组织事情,这实际上取决于您的用例。

我需要在这里使用数据绑定吗?除了Jeff的答案,解决问题的正确方法是:使用ShadowDom,无需手动创建唯一的id。如果您只有一个
span
,则可以安全地将其命名为
loveCount
,因为它封装在该实例中,不会与任何其他
post card
InstanceHanks Jeff,+1作为要点:)