【问题标题】:How to update data (dom) from polymer element using vanilla js?如何使用 vanilla js 从聚合物元素更新数据(dom)?
【发布时间】:2016-03-07 19:56:03
【问题描述】:

我有以下聚合物元素:

<acre-faq id="faq"></acre-faq>

有以下数据:

var seedElement = document.querySelector('#faq');
seedElement.questions = [{votes: number, question: string, 
               answers: [{answer: string, author: string, date: string}]}]

当用户点击投票事件时,我想更改点击项目的数据:

 seedElement.addEventListener("acre-faq-up",function(e){
             e.detail.item.votes = e.detail.item.votes+1;
         });

但是 DOM 没有更新,有没有办法做到这一点而不使用另一个聚合物元素来操作数据?

元素代码:http://pastebin.com/g27DiWuE

【问题讨论】:

  • 不应该像这样使用点击事件吗:seedElement.addEventListener("click",function(e){...}
  • 问题不在于事件,acre-faq-upevent 工作并返回属性数据,当我更新投票时问题就在那里e.detail.item.votes = e.detail.item.votes+1; dom 没有更新
  • 请发布detail.item元素
  • 是聚合物元素的模板,可以在任何地方使用,因为有两种可能的解决方案,但它们取决于属性在模板中的绑定方式?
  • 创建元素的代码在这里:pastebin.com/g27DiWuE

标签: javascript polymer


【解决方案1】:

当您更改绑定到您的 Polymer 元素的数据时,您需要使用 Polymer API for Polymer 来识别更改,例如

set('prop.val.subval', newVal);

另见https://www.polymer-project.org/1.0/docs/devguide/data-binding.html#set-path

【讨论】:

    猜你喜欢
    • 2014-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-02
    • 1970-01-01
    • 2021-12-08
    • 1970-01-01
    • 2014-01-15
    相关资源
    最近更新 更多