如何等待DOM加载到Polymer中?

时间:2017-07-27 19:12:51

标签: polymer polymer-1.0

我有<template is="dom-if" if="[[shouldLoad(name)]]" class="render-me">

name由ajax调用中接收的数据填充,并且在模板中使用相同的数据。不幸的是,这会导致异步问题。

有没有办法重新加载dom-if并等待渲染一切?

3 个答案:

答案 0 :(得分:1)

Polymer提供了几个功能,可以在文档中的Lifecycle callbacks下找到。

在你的场景中,ready函数可能效果最好。
在设置属性值并初始化本地DOM之后调用它。

  ready: function() {
    console.log(this.localName + '#' + this.id + ' has local DOM initialized');
  },


也许您可以将函数shouldLoad(name)添加到您的问题中,以便我们可以看到它究竟是做什么的,因为还有其他方法可以解决该问题。

答案 1 :(得分:0)

shouldLoad(name)的值发生变化时,

name会重新评估。也许,您可以检查方法的返回值。

答案 2 :(得分:0)

从服务器获得答案时设置布尔值。

如果你真的不想在那之前呈现内容,请将restamp作为属性添加到dom-if。如果你没有,那么Polymer仍会渲染所有内容,但会隐藏它。

但如果你遇到了问题,那么你的代码可能会出现问题。哦,如果变量 - 在这种情况下为name - 是undefined,则dom-ifs不会呈现任何内容。

https://www.polymer-project.org/1.0/docs/api/elements/dom-if