文章搬遷搬遷~~
因為自己弄了HEXO將來文章會放到那,這裡將停止更新,而文章也會慢慢更新到那裏去,歡迎大家來看與指教。 網址:https://donggualemon.github.io/
<template>
<div id="app">
<input/>
<ul>
<li v-for="(item,index) in items" :key="index" :class="{finished:item.isFinished}">
<span>{{item.label}}</span>
</ul>
</div>
</template>
<script>
export default {
data () {
return {
items: [
{
label: 'read books',
isFinished: false
},
{
label: 'eat dinner',
isFinished: true
}
],
}
}
}
</script>
<style>
.finished {
text-decoration: line-through;
}
</style>
這樣的樣子會呈現這樣,單純的輸入與一開始的內容。<input class="addtext" @keyup.enter="Enter" v-model="newlist"/>
在input的地方加上V-on鍵盤按下去Enter並觸發Enter事件,然後讓我們輸入的文字綁定到newlist上。<script>
export default {
data () {
return {
//items some code....
newlist:""
}
},
methods:{
Enter(){
this.items.push({label:this.newlist,isFinished:false});
this.newlist="";
}
}
}
</script>
script的部分新增newlist字串存的地方,methods裡放入input的Enter點擊事件,按下enter同時把當時輸入的值,push到我們的items裡面,並清空newlist。<ul>
<li v-for="(item,index) in items" :key="index" :class="{finished:item.isFinished}">
<input type="checkbox" :checked="item.isFinished" @change="endlist(item)"/>
<span>{{item.label}}</span>
</li>
</ul>
並在checked部分利用v-bind綁定item.isFinished當為true則是勾選反之,綁定v-on:change來監測改變狀態時也要改變isFinished的狀態,注意要傳item的值進去這樣function才知道v-for渲染出來的東西哦。 endlist(item){
item.isFinished =! item.isFinished;
}
在methods裡面再加一個endlist function來改變item.isFinished的狀態,這樣我們就能控制事項完成與否啦。<template>
<div id="app">
<input class="addtext" @keyup.enter="Enter" v-model="newlist"/>
<ul>
<li v-for="(item,index) in items" :key="index" :class="{finished:item.isFinished}">
<input type="checkbox" :checked="item.isFinished" @change="endlist(item)"/>
<span v-if="!item.isEdit">{{item.label}}</span>
<input @keyup.enter="update(index,item.label)" v-if="item.isEdit" v-model="item.label">
<button @click="edit(index)">編輯</button>
<button @click="remove(index)">刪除</button>
</li>
</ul>
</div>
</template>
<script>
export default {
data () {
return {
items: [
{
label: 'read books',
isFinished: false,
isEdit:false
},
{
label: 'eat dinner',
isFinished: true,
isEdit:false
}
],
newlist:"",
updatetext:""
}
},
methods:{
Enter(){
this.items.push({label:this.newlist,isFinished:false,isEdit:false});
this.newlist="";
},
endlist(item){
item.isFinished =! item.isFinished;
},
remove(index){
this.items.splice(index,1);
},
edit(index){
this.items[index].isEdit =! this.items[index].isEdit;
},
update(index,label){
this.items[index].label=label;
this.items[index].isEdit =! this.items[index].isEdit;
}
}
}
</script>
留言
張貼留言