いくつかの情報を見栄えの良い方法で表示するためのコンポーネントを作成しました。このコンポーネントは、親コンポーネントの内部でレンダリングされるコンテンツの単なるラッパーです。親コンポーネントは、子コンポーネントを次のように実装します。Vue.js - 親スコープが更新されていないテンプレート
<my-component v-for="item in items" :key="item.id">
<template slot="header">
{{ item.title }}
</template>
<template slot="meta">
<div>
<template v-if="typeof item.additionalData != 'undefined'">
{{ item.additionalData.text }}
</template>
</div>
</template>
</my-component>
データを変更するまで、正常に動作します。 itemsは親コンポーネント内の変数であり、レンダリング時にはデータは正しい方法で解析されます。レンダリング後にアイテムの中の何かを変更すると、子コンポーネントはそれを認識しません。その理由は、コンポーネントが既にレンダリングされた後にitem.additionalDataがAJAX呼び出しによって追加されるためです。
ドキュメントは親テンプレートで
すべては親スコープでコンパイルされたと言います。子テンプレートのすべてが子スコープでコンパイルされます。
しかし、これはレンダリング時にのみ当てはまるようです。
私のコンポーネントをこの方法で使用することはできませんか、それとも解決策がありますか? docsから
https://vuejs.org/v2/api/#vm-forceUpdate – Randy
ここでは、Ajaxコールの完了を待つ方法を説明し、次にレンダリングします。https://laracasts.com/discuss/ channel/vue/vue-20-waiting-for-async-ajax-data – Randy
ところで、歓迎されてStackOverflow。下の回答のいずれかがあなたの問題を解決した場合は、コミュニティがあなたのフィードバックから恩恵を受けるように、受け入れられたものとしてあなたのために最善のものをマークしてください。あなたの質問が依然として解決されていない場合は、問題の一番下に行くのを助けるために、あなたの答えを更なる情報で更新してください。 –