2017-07-27 20 views
0

私は<template is="dom-if" if="[[shouldLoad(name)]]" class="render-me">です。DOMがPolymerにロードされるのを待つ方法はありますか?

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に追加します。あなたがそれを持っていなければ、ポリマーはまだすべてをレンダリングしますが、それを隠します。

しかし、間違ったことがあると、おそらくコードに間違っているものです。ああ、dom-ifsは変数nameがその場合undefinedなら何も表示しません。

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

関連する問題