私は<template is="dom-if" if="[[shouldLoad(name)]]" class="render-me">
です。DOMがPolymerにロードされるのを待つ方法はありますか?
name
は、ajax呼び出しで受け取ったデータによって作成され、同じデータがテンプレート内で使用されます。残念ながら、これは非同期の問題を引き起こします。
dom-if
をリロードしてすべてのレンダリングを待つ方法はありますか?
私は<template is="dom-if" if="[[shouldLoad(name)]]" class="render-me">
です。DOMがPolymerにロードされるのを待つ方法はありますか?
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に追加します。あなたがそれを持っていなければ、ポリマーはまだすべてをレンダリングしますが、それを隠します。
しかし、間違ったことがあると、おそらくコードに間違っているものです。ああ、dom-ifsは変数name
がその場合undefined
なら何も表示しません。
https://www.polymer-project.org/1.0/docs/api/elements/dom-if