我有<template is="dom-if" if="[[shouldLoad(name)]]" class="render-me">
。
name
由ajax调用中接收的数据填充,并且在模板中使用相同的数据。不幸的是,这会导致异步问题。
有没有办法重新加载dom-if
并等待渲染一切?
答案 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