我有一个作业,我必须做一个简单的测验,每个正确的问题必须在分数上加1分,这是我的代码
let app = new Vue({
el: '#app',
data: {
crameworks: [
{skor: 0}
],
frameworks: [
{ name: 'A.Charles Bababage',
votes : true },
{ name: 'B.Naruto',
votes : false },
{ name: 'C.Sasuke',
votes : false },
{ name: 'D.Belva',
votes : false},
],
grameworks : [
{ jawaban: 'A.Pochinok',
votes : true },
{ jawaban: 'B.Miramar',
votes : false },
{ jawaban: 'C.Tambang',
votes : false },
{ jawaban: 'D.Kampong',
votes : false}
],
vrameworks : [
{ answer: 'A.Bisa',
votes : false},
{ answer: 'B.Tidak',
votes : true},
{ answer: 'C.Mungkin',
votes : false},
{ answer: 'D.isin ku aa crown',
votes : false}
]
},
methods:{
skor(){
if(this.votes == true){
this.crameworks[0].skor + 1
}
}
}
})
这是我的html文件
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>My App</title>
<script src="https://cdn.jsdelivr.net/npm/vue">
</script>
</head>
<body>
<div id="app">
<ul>
1.Pembuat Printer adalah
<br>
<p v-for="f in frameworks">
<input type="radio">
{{f.name}}
</p>
</ul>
<ul>
2.Berikut area dalam game PUBG, Kecuali
<br>
<p v-for="g in grameworks">
<input type="radio">
{{g.jawaban}}
</p>
</ul>
<ul>
3.Bisakah Senjata Kar98K menggunakan Extended Sniper?
<p v-for="v in vrameworks">
<input type="radio">
{{v.answer}}
</p>
<button type="submit" v-on:Click="skor">Jawab</button>
<h1>Skor : {{skor}}</h1>
<script src="index.js"></script>
</div>
</body>
</html>
我在每个正确答案中都给出了一个true
语句,因此,如果用户选择带有true
语句的答案,则应该在分数上加1分并打印分数,问题是我得到此警告(function () { [native code] })
当我尝试打印分数时,分数首先应该为0
答案 0 :(得分:1)
您正在使用函数skor
确定何时添加+1,但是您要分配给的变量是错误的。它应该是this.crameworks[0].skor + 1
。另外,在数据初始化时,该名称应为数字0
,而不是字符串'0'
。
您还在Vue初始化程序中两次声明了data
。将它们组合成单个data: {}
对象。
答案 1 :(得分:0)
this.skor
是指该方法,因此以下是该方法:
<h1>Skor : {{skor}}</h1>
要访问数据,您需要在正确的位置引用它们,crameworks[0].skor
:
<h1>Skor : {{crameworks[0].skor}}</h1>
答案 2 :(得分:0)
错误在 skor,你忘记在它后面加上这些括号 (),这就是你调用 javascript function 的方式
<h1>Skor : {{skor()}}</h1>