2017-07-27 82 views
0

我有一個<template is="dom-if" if="[[shouldLoad(name)]]" class="render-me">如何等待DOM加載聚合物?

name由在ajax調用中接收到的數據填充,並且在模板中使用相同的數據。不幸的是,這會導致異步問題。

有沒有辦法重新加載dom-if並等待一切呈現?

回答

0

shouldLoad(name)將在name的值更改時重新評估。也許,你可以檢查你的方法的返回值。

0

聚合物提供了幾個功能,可以在文檔中的Lifecycle callbacks下找到。

在你的場景中,ready函數可能效果最好。
它在屬性值被設置並且本地DOM被初始化之後被調用。

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


也許你可以在功能shouldLoad(名稱)添加到您的問題,所以我們可以看到它究竟是幹什麼的,因爲有其他的辦法來解決這個問題。

0

當您從服務器獲得答案時設置一個布爾值。

如果你真的不希望在這之前渲染東西,請將restamp作爲屬性添加到dom-if。如果你沒有,聚合物仍然會渲染一切,但隱藏它。

但是,如果您遇到了問題,那麼這可能是您的代碼出錯了。哦,如果在這種情況下的變量nameundefined,那麼dom-ifs不會呈現任何內容。

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