我有一個<template is="dom-if" if="[[shouldLoad(name)]]" class="render-me">
。如何等待DOM加載聚合物?
name
由在ajax調用中接收到的數據填充,並且在模板中使用相同的數據。不幸的是,這會導致異步問題。
有沒有辦法重新加載dom-if
並等待一切呈現?
我有一個<template is="dom-if" if="[[shouldLoad(name)]]" class="render-me">
。如何等待DOM加載聚合物?
name
由在ajax調用中接收到的數據填充,並且在模板中使用相同的數據。不幸的是,這會導致異步問題。
有沒有辦法重新加載dom-if
並等待一切呈現?
shouldLoad(name)
將在name
的值更改時重新評估。也許,你可以檢查你的方法的返回值。
聚合物提供了幾個功能,可以在文檔中的Lifecycle callbacks下找到。
在你的場景中,ready函數可能效果最好。
它在屬性值被設置並且本地DOM被初始化之後被調用。
ready: function() {
console.log(this.localName + '#' + this.id + ' has local DOM initialized');
},
也許你可以在功能shouldLoad(名稱)添加到您的問題,所以我們可以看到它究竟是幹什麼的,因爲有其他的辦法來解決這個問題。
當您從服務器獲得答案時設置一個布爾值。
如果你真的不希望在這之前渲染東西,請將restamp
作爲屬性添加到dom-if。如果你沒有,聚合物仍然會渲染一切,但隱藏它。
但是,如果您遇到了問題,那麼這可能是您的代碼出錯了。哦,如果在這種情況下的變量name
是undefined
,那麼dom-ifs不會呈現任何內容。
https://www.polymer-project.org/1.0/docs/api/elements/dom-if