ここでは2つの問題があります。最初は、私が星を適切にレンダリングすることができないということです。 data()
関数の値を変更するとできますが、関数コールバックの方法でそれをやりたいのであれば、機能しません(下記のコメントを参照)。ここで何がうまくいかないの? Vueのライフサイクルと関係がありますか?Vue.jsの関数コールバックに正しく表示されないコンテンツ
2番目は、テキストレートのスターレートとコンテンツを送信したいのですが、ページを更新するときにコンテンツをページに表示し、<textarea></textarea>
の代わりに何をすればいいですか?
私はここでJSFiddleを作りたいと思いますが、私はVueの単一ファイルコンポーネントでそれを作る方法を知らないので、あなたの助けに本当に感謝します。あなたがあれば<textarea>
を交換し、コンテンツをレンダリングしたいと
methods: {
getComment (id) {
var self = this;
dataService.getOrderCommentList(id).then(data => {
self.dimensionA = 1
})
}
},
を:
<div class="order-comment">
<ul class="list-wrap">
<li>
<span class="comment-label">rateA</span>
<star-rating :data="dimensionA"></star-rating>
</li>
</ul>
<div>
<h4 class="title">comment</h4>
<textarea class="content" v-model="content">
</textarea>
</div>
<mt-button type="primary" class="mt-button">submit</mt-button>
</div>
</template>
<script>
import starRating from 'components/starRating'
import dataService from 'services/dataService'
export default {
data() {
return {
dimensionA: '' //if I changed the value here the star rendered just fine.
}
},
components: {
starRating
},
methods: {
getComment (id) {
return dataService.getOrderCommentList(id).then(data => {
this.dimensionA = 1
})
}
},
created() {
this.getComment(1) // not working
}
}
</script>
データは 'get'メソッドであるべきですか? – whatAboutJohn
ここでは、問題を再構築するのに役立つ、単一でないファイルコンポーネントを使用する基本的な考え方を示します。 –
@whatAboutJohn 'data()'はコンポーネント内の関数でなければなりません。あなたは何を意味するのか? –