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

刪除例子
1.創(chuàng)建Ionic2應用
通過以下命令行語句創(chuàng)建新的Ionic2應用:
ionic start ionic2-delete blank --v2
這里我使用了–v2標志位,為了告訴Ionic命令行我們創(chuàng)建的是Ionic2項目。
2.準備列表數(shù)據(jù)
我們需要一些維護數(shù)據(jù),因此要建立一些試驗數(shù)據(jù)。創(chuàng)建我們項目的blank模版默認建立了一個Home組件,這個教程我們就在此基礎上修改。
既然Ionic2還很新,我將這些步驟盡量闡述詳細,下面我們看看app/home/home.js文件:
import {Page} from 'ionic/ionic'
@Page({
templateUrl: 'app/home/home.html',
})
export class HomePage {
constructor() {}
}
constructor 方法在組件創(chuàng)建是執(zhí)行,因此我們在這里準備試驗數(shù)據(jù)。你可能已經(jīng)注意到我們已經(jīng)給這個組件定義了模版,隨后將展示如何在模版中使用在這里添加的數(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.修改主頁(HOME)的模版
接下來我們編輯home.html來建立模版?,F(xiàn)在的模版是包含一些創(chuàng)建<ion-card>的代碼,而我們要用<ion-list>來代替:
修改 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)建了只有一個單項的列表,接著我們將添加滑動元素。
繼續(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>
通過上下對比,你應該看到:我們用ion-item-sliding替換了ion-item 。這允許我們創(chuàng)建一個ion-item-options 部件,當用戶滑動列表元素時,它將顯示出來。
這段代碼還創(chuàng)建了一個刪除按鈕,當ion-item-options部件顯示出來時,可以點擊按鈕,這時會觸發(fā)類中定義的removeItem (暫無,接下來添加)。另外,我們不止是一個單項,我們要為我們創(chuàng)建的數(shù)組的每一個數(shù)據(jù)創(chuà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)在類中定義的items數(shù)組的每個item項,然后為每個項創(chuàng)建一個 ion-item-sliding指令。注意我們使用的是#item而不是item。這將創(chuàng)建一個本地引用到迭代獲得的item,這讓我們可以使用 { {item.title} } 輸出標題,它還允許我們傳遞item的引用到我們的 removeItem 函數(shù)。
我們現(xiàn)在有了一個列表包含所有數(shù)據(jù),用戶可以滑動并顯示出一個delete按鈕。現(xiàn)在剩下的是當用戶點擊時做點什么事。因此我們設置一個簡單監(jiān)聽以便調(diào)用方法從我們先前創(chuàng)建的測試數(shù)據(jù)中刪除一項。
4.創(chuàng)建方法刪除數(shù)據(jù)
現(xiàn)在我們?nèi)サ?home.js 文件編寫方法處理數(shù)據(jù)刪除。當前但刪除按鈕被點擊時傳送一個數(shù)據(jù)項給 removeItem。類似的,你可以非常容易的實現(xiàn)例如刪除、編輯、分享、播放動畫等你需要的東西,不僅是刪除。
修改 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è)滑動列表項,然后點擊刪除按鈕,它就會從列表中刪除。就像下面這樣:

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

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

