EDIT - これは完全な赤いHERRINGです。階層内のuser
プロパティの1つに、readOnly
プロパティが設定されていました。これは伝播を妨げていました。オブジェクトのプロパティとのポリマーのデータバインディングの混乱
私はデータバインディングを理解するのに苦労していますし、どのようにプロパティの変更は、私は要素の木構造のセットを持っている時に値が伝播(構造は別個の要素の定義に広がっている - おそらく以下の構造ショーで暗示として<content>
タグでない)
<my-app user="{{user}}">
<my-session user="{{user}}">
<my-login user="{{user}}"></my-login>
</my-session>
<template is="dom-if" if="[[user.name]]">
<my-pages user="{{user}}">
<iron-pages>
<my-menu user="{{user}}"></my-menu>
<my-reports user="{{user}}"></my-reports>
</iron-pages>
</my-pages>
</template>
</my-app>
それらの異なる定義でこれらの要素の各々は
user : {
type: Object,
notify: true
}
プロパティを定義し、すべての要素がLでありますIは、アクセス制御のために使用されるkeys
呼ばuser
の性質を持っているユーザーがログオンした(したがってuser.name
が定義されている)の後
<my-pages>
データバインディングがimportHref
を使用して遅延ロードされる双方向
で結ん。特に、<my-menu>
とサブ要素<my-reports>
はどちらを使用して表示するメニュー項目を決定します。
これはすべて初期ログオン時に正常に動作します。しかし、私がログオンしたユーザーを変更した場合、ユーザーのプロパティへのこの変更は明らかに正しく伝播していません。
私が見ることができるのは、ページの変更中に発生したデバッガからのものです。 user
には新しいログオンユーザー値がありますが、には古いユーザーが含まれていますが、<my-pages>
のuser
には古いユーザーがいます。何らかの理由でのデータバインディングが、<my-login>
から<my-app>
に正常に伝播したように見えても、ツリー構造の下では機能していません。 。
おそらく、user
の「オブジェクト」がパスだけを変更していないと仮定しています。私はここで何をすべきかについて混乱している。誰かが助けることができる?
コードに構文エラーがあります。あなたは 'my-pages'要素を閉じていません。 – a1626
ユーザーのプロパティにオブザーバを追加してバグを発見しました。その際、readOnlyプロパティを設定したものが発見されました。 – akc42