私はゲームを作ろうとしています。更新されたV-Htmlは動作しません
プレイヤーがゲームに参加すると、通常、ようこそメッセージが表示されます。しかし、何も現れません。
<template>
<div>
<span v-html = "welcomeMessage" v-hide></span>
<form v-hide v-on:submit.prevent="setPlayer">
<input name="player" placeholder="Enter the player name" v-border:blue/>
<button type="submit" v-border:red>Play</button>
</form>
</div>
</template>
<script>
export default {
name: 'player',
data: function() {
return {
player: '',
welcomeMessage: ''
}
},
updated: function() {
this.welcomeMessage = `Hi <span class="player">${this.player}</span> ! `
},
methods: {
setPlayer: function (event) {
this.player = event.target[0].value
}
},
directives: {
border: function (el, binding) {
el.style.borderColor = binding.arg
},
hide: function (el, binding, vnode) {
let isForm = vnode.tag === 'form'
let player = vnode.context.player
if (isForm) {
el.style.display = player ? 'none' : 'block'
} else {
el.style.display = player ? 'block' : 'none'
}
}
}
}
</script>
<style scoped>
</style>
それは動作しないようですが、私はなぜわかりません!プレイヤーの名前は更新されたフックで更新されますが、テンプレートには表示されません。
手がかりがあります。
Thxs。
なぜ単純な組み込みの 'v-if =" welcomeMessage "や' v-show = "welcomeMessage"ではなく、カスタムの 'v-hide'を使っていますか? – ceejayoz
@ceejayoz私はチュートリアルに従っています。名前プレーヤーを送信するとwelcomeMessageは表示されません – Kikou
別のチュートリアルを選んでください。あなたが使用しているのはおっさんです。 – ceejayoz