Vue.jsを使って配列の内容を選ぶ次の表示のようなWebページのコードを作っています。
ところが、うまく選び出してくれません。
Chromeディベロッパーツールのエラーメッセージの抜粋は
vue.js:634 [Vue warn]: Error in mounted hook: "ReferenceError: data is not defined" (found in <Root>) warn @ vue.js:634 logError @ vue.js:1902 globalHandleError @ vue.js:1897 handleError @ vue.js:1857 invokeWithErrorHandling @ vue.js:1880 callHook @ vue.js:4236 mountComponent @ vue.js:4102 Vue.$mount @ vue.js:9088 Vue.$mount @ vue.js:11993 Vue._init @ vue.js:5026 Vue @ vue.js:5092 (anonymous) @ Vue_select03.html:27 vue.js:1906 ReferenceError: data is not defined at Vue.getPrice (Vue_select03.html:41) at Vue.mounted (Vue_select03.html:45) at invokeWithErrorHandling (vue.js:1872) at callHook (vue.js:4236) at mountComponent (vue.js:4102) at Vue.$mount (vue.js:9088) at Vue.$mount (vue.js:11993) at Vue._init (vue.js:5026) at new Vue (vue.js:5092) at Vue_select03.html:27
です。
まだ、Vueの変数やメソッドの指定がよく分かってないからなのですが、どう直せばよいのか、どうかお助け下さい。コードは以下の通りです。
html
1<?xml version="1.0" encoding="UTF-8"?> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> 4<head> 5<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 6<meta http-equiv="Content-Style-Type" content="text/css" /> 7<meta http-equiv="Content-Script-Type" content="text/javascript" /> 8<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script> 9<title>Vue.js selectの取得</title> 10</head> 11<body> 12 13<div id="area"> 14 <select name="fluits" id="fluit-select" v-model="selected"> 15 <option disabled value="0">ここからお選びください。</option> 16 <option value="1">りんご</option> 17 <option value="2">みかん</option> 18 <option value="3">バナナ</option> 19 </select> 20 <span>Selected: {{ selected }}</span> 21 <br> 22 <br> 23 <span >price: {{price}}</span> 24</div> 25 26<script> 27var vm = new Vue({ 28 el: '#area', 29 data: { 30 selected: '', 31 fluits:[ 32 { id: 0, name: 'null',price: 0}, 33 { id: 1, name: 'りんご',price: 100}, 34 { id: 2, name: 'みかん',price: 100}, 35 { id: 3, name: 'バナナ',price: 100} 36 ], 37 price: 0 38 }, 39 methods: { 40 getPrice() { 41 this.price = this.fluits[this.selected.value].price 42 } 43 }, 44 mounted: function () { 45 this.$nextTick(function () { 46 getPrice() 47 }) 48 } 49}); 50</script> 51 52</body> 53</html> 54
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。