Ionic 2 實(shí)現(xiàn)列表滑動(dòng)刪除按鈕的方法
在上篇文章給大家介紹了ionic中列表項(xiàng)增加和刪除的實(shí)現(xiàn)方法,接下來(lái)通過(guò)本文給大家介紹Ionic 2 實(shí)現(xiàn)列表滑動(dòng)刪除按鈕的方法,具體內(nèi)容詳情如下所示:
使用Ionic這種框架偉大的地方在于用戶(hù)界面元素默認(rèn)準(zhǔn)備好了,意味著你可以設(shè)計(jì)更好的app而不需要很強(qiáng)的用戶(hù)體檢設(shè)計(jì)背景,而且讓你可以更容易實(shí)現(xiàn)這些模式。
這篇教程將展示如何使用Ionic2添加一個(gè)簡(jiǎn)單的刪除按鈕到列表,當(dāng)用戶(hù)滑動(dòng)列表項(xiàng)到左邊的時(shí)候。這是一個(gè)處理刪除列表數(shù)據(jù)時(shí)候常用的模式。本教程將涵蓋創(chuàng)建這個(gè)滑動(dòng)刪除按鈕所需要的一切。

刪除例子
1.創(chuàng)建Ionic2應(yīng)用
通過(guò)以下命令行語(yǔ)句創(chuàng)建新的Ionic2應(yīng)用:
ionic start ionic2-delete blank --v2
這里我使用了–v2標(biāo)志位,為了告訴Ionic命令行我們創(chuàng)建的是Ionic2項(xiàng)目。
2.準(zhǔn)備列表數(shù)據(jù)
我們需要一些維護(hù)數(shù)據(jù),因此要建立一些試驗(yàn)數(shù)據(jù)。創(chuàng)建我們項(xiàng)目的blank模版默認(rèn)建立了一個(gè)Home組件,這個(gè)教程我們就在此基礎(chǔ)上修改。
既然Ionic2還很新,我將這些步驟盡量闡述詳細(xì),下面我們看看app/home/home.js文件:
import {Page} from 'ionic/ionic'
@Page({
templateUrl: 'app/home/home.html',
})
export class HomePage {
constructor() {}
}
constructor 方法在組件創(chuàng)建是執(zhí)行,因此我們?cè)谶@里準(zhǔn)備試驗(yàn)數(shù)據(jù)。你可能已經(jīng)注意到我們已經(jīng)給這個(gè)組件定義了模版,隨后將展示如何在模版中使用在這里添加的數(shù)據(jù)。
home.js 文件修改如下:
import {Page} from 'ionic/ionic'
@Page({
templateUrl: 'app/home/home.html',
})
export class HomePage {
constructor() {
this.items = [
{title: 'item1'},
{title: 'item2'},
{title: 'item3'},
{title: 'item4'},
{title: 'item5'},
{title: 'item6'}
];
}
}
現(xiàn)在我們有一些數(shù)據(jù)可以刪除了。
3.修改主頁(yè)(HOME)的模版
接下來(lái)我們編輯home.html來(lái)建立模版?,F(xiàn)在的模版是包含一些創(chuàng)建<ion-card>的代碼,而我們要用<ion-list>來(lái)代替:
修改 home.html如下:
<ion-navbar *navbar> <ion-title> Home </ion-title> </ion-navbar> <ion-content> <ion-list> <ion-item> I'm just a plain old item in a list... </ion-item> </ion-list> </ion-content>
這只是創(chuàng)建了只有一個(gè)單項(xiàng)的列表,接著我們將添加滑動(dòng)元素。
繼續(xù)修改home.html如下:
<ion-navbar *navbar> <ion-title> Home </ion-title> </ion-navbar> <ion-content> <ion-list> <ion-item-sliding> <ion-item> Swipe me to the left </ion-item> <ion-item-options> <button danger (click)="removeItem()"><icon trash></icon> Delete</button> </ion-item-options> </ion-item-sliding> </ion-list> </ion-content>
通過(guò)上下對(duì)比,你應(yīng)該看到:我們用ion-item-sliding替換了ion-item 。這允許我們創(chuàng)建一個(gè)ion-item-options 部件,當(dāng)用戶(hù)滑動(dòng)列表元素時(shí),它將顯示出來(lái)。
這段代碼還創(chuàng)建了一個(gè)刪除按鈕,當(dāng)ion-item-options部件顯示出來(lái)時(shí),可以點(diǎn)擊按鈕,這時(shí)會(huì)觸發(fā)類(lèi)中定義的removeItem (暫無(wú),接下來(lái)添加)。另外,我們不止是一個(gè)單項(xiàng),我們要為我們創(chuàng)建的數(shù)組的每一個(gè)數(shù)據(jù)創(chuàng)建滑動(dòng)項(xiàng),這里我使用ng-for。
還是修改home.html如下:
<ion-navbar *navbar>
<ion-title>
Home
</ion-title>
</ion-navbar>
<ion-content>
<ion-list>
<ion-item-sliding *ng-for="#item of items">
<ion-item>
{{item.title}}
</ion-item>
<ion-item-options>
<button danger (click)="removeItem(item)"><icon trash></icon> Delete</button>
</ion-item-options>
</ion-item-sliding>
</ion-list>
</ion-content>
現(xiàn)在我們循環(huán)在類(lèi)中定義的items數(shù)組的每個(gè)item項(xiàng),然后為每個(gè)項(xiàng)創(chuàng)建一個(gè) ion-item-sliding指令。注意我們使用的是#item而不是item。這將創(chuàng)建一個(gè)本地引用到迭代獲得的item,這讓我們可以使用 { {item.title} } 輸出標(biāo)題,它還允許我們傳遞item的引用到我們的 removeItem 函數(shù)。
我們現(xiàn)在有了一個(gè)列表包含所有數(shù)據(jù),用戶(hù)可以滑動(dòng)并顯示出一個(gè)delete按鈕?,F(xiàn)在剩下的是當(dāng)用戶(hù)點(diǎn)擊時(shí)做點(diǎn)什么事。因此我們?cè)O(shè)置一個(gè)簡(jiǎn)單監(jiān)聽(tīng)以便調(diào)用方法從我們先前創(chuàng)建的測(cè)試數(shù)據(jù)中刪除一項(xiàng)。
4.創(chuàng)建方法刪除數(shù)據(jù)
現(xiàn)在我們?nèi)サ?home.js 文件編寫(xiě)方法處理數(shù)據(jù)刪除。當(dāng)前但刪除按鈕被點(diǎn)擊時(shí)傳送一個(gè)數(shù)據(jù)項(xiàng)給 removeItem。類(lèi)似的,你可以非常容易的實(shí)現(xiàn)例如刪除、編輯、分享、播放動(dòng)畫(huà)等你需要的東西,不僅是刪除。
修改 home.js 如下:
import {Page} from 'ionic/ionic'
@Page({
templateUrl: 'app/home/home.html',
})
export class HomePage {
constructor() {
this.items = [
{title: 'item1'},
{title: 'item2'},
{title: 'item3'},
{title: 'item4'},
{title: 'item5'},
{title: 'item6'}
];
}
removeItem(item){
for(i = 0; i < this.items.length; i++) {
if(this.items[i] == item){
this.items.splice(i, 1);
}
}
}
}
現(xiàn)在你向左側(cè)滑動(dòng)列表項(xiàng),然后點(diǎn)擊刪除按鈕,它就會(huì)從列表中刪除。就像下面這樣:

刪除例子
5.添加一個(gè)編輯按鈕
這里將不會(huì)將Edit按鈕的全過(guò)程走一遍,但是你可以輕易擴(kuò)展活動(dòng)項(xiàng)并添加編輯按鈕,如下所示:
<ion-item-options> <button primary>Edit</button> <button danger (click)="removeItem(item)"><icon trash></icon> Delete</button> </ion-item-options>
現(xiàn)在滑動(dòng)時(shí)你有兩個(gè)按鈕了,看下面:

添加編輯按鈕
然后你可以編寫(xiě)Edit按鈕的點(diǎn)擊事件了,具體取決于你的需求。
總結(jié)
Ionic2 這個(gè)特性真是太棒了,不僅能刪除,還能輕易的添加其它按鈕。
這同時(shí)也是一個(gè)非常完美的UI元素節(jié)省屏幕空間,不會(huì)顯示這些信息除非你滑動(dòng)屏幕。
以上所述是小編給大家介紹的Ionic 2 實(shí)現(xiàn)列表滑動(dòng)刪除按鈕的方法,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
JavaScript事件循環(huán)剖析宏任務(wù)與微任務(wù)
這篇文章主要為大家介紹了JavaScript事件循環(huán)剖析宏任務(wù)與微任務(wù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10
js和jquery實(shí)現(xiàn)tab狀態(tài)欄切換效果
這篇文章主要為大家詳細(xì)介紹了js和jquery實(shí)現(xiàn)tab狀態(tài)欄切換效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
js實(shí)現(xiàn)的鼠標(biāo)滾輪滾動(dòng)切換頁(yè)面效果(類(lèi)似360默認(rèn)頁(yè)面滾動(dòng)切換效果)
這篇文章主要介紹了js實(shí)現(xiàn)的鼠標(biāo)滾輪滾動(dòng)切換頁(yè)面效果,類(lèi)似360默認(rèn)頁(yè)面滾動(dòng)切換效果.涉及JavaScript響應(yīng)鼠標(biāo)事件動(dòng)態(tài)變換頁(yè)面元素的相關(guān)技巧,需要的朋友可以參考下2016-01-01
javascript函數(shù)報(bào)Uncaught?ReferenceError:?XXX?is?not?define
本文主要介紹了javascript函數(shù)報(bào)Uncaught?ReferenceError:?XXX?is?not?defined,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
微信小程序?qū)崿F(xiàn)星級(jí)評(píng)分和展示
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)星級(jí)評(píng)分和展示效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07
關(guān)于VSCode格式化JS自動(dòng)添加或去掉分號(hào)的問(wèn)題
這篇文章主要介紹了VSCode格式化JS自動(dòng)添加或去掉分號(hào)的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-10-10
js中的時(shí)間轉(zhuǎn)換—毫秒轉(zhuǎn)換成日期時(shí)間的示例代碼
本篇文章主要是對(duì)js中的時(shí)間轉(zhuǎn)換—毫秒轉(zhuǎn)換成日期時(shí)間的示例代碼進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-01-01

