`

Ionic 2 :如何实现列表滑动删除按钮

阅读更多

使用Ionic这种框架伟大的地方在于用户界面元素默认准备好了,意味着你可以设计更好的app而不需要很强的用户体检设计背景,而且让你可以更容易实现这些模式。

这篇教程将展示如何使用Ionic2添加一个简单的删除按钮到列表,当用户滑动列表项到左边的时候。这是一个处理删除列表数据时候常用的模式。本教程将涵盖创建这个滑动删除按钮所需要的一切。

 


删除例子

1.创建Ionic2应用

通过以下命令行语句创建新的Ionic2应用:

ionic start ionic2-delete blank --v2

这里我使用了–v2标志位,为了告诉Ionic命令行我们创建的是Ionic2项目。

2.准备列表数据

我们需要一些维护数据,因此要建立一些试验数据。创建我们项目的blank模版默认建立了一个Home组件,这个教程我们就在此基础上修改。
既然Ionic2还很新,我将这些步骤尽量阐述详细,下面我们看看app/home/home.js文件:

import {Page} from 'ionic/ionic'


@Page({
  templateUrl: 'app/home/home.html',
})
export class HomePage {
  constructor() {}
}

constructor 方法在组件创建是执行,因此我们在这里准备试验数据。你可能已经注意到我们已经给这个组件定义了模版,随后将展示如何在模版中使用在这里添加的数据。

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'}
    ];

  }
}

现在我们有一些数据可以删除了。

3.修改主页(HOME)的模版

接下来我们编辑home.html来建立模版。现在的模版是包含一些创建<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>

这只是创建了只有一个单项的列表,接着我们将添加滑动元素。

继续修改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 。这允许我们创建一个ion-item-options 部件,当用户滑动列表元素时,它将显示出来。
这段代码还创建了一个删除按钮,当ion-item-options部件显示出来时,可以点击按钮,这时会触发类中定义的removeItem (暂无,接下来添加)。另外,我们不止是一个单项,我们要为我们创建的数组的每一个数据创建滑动项,这里我使用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>

现在我们循环在类中定义的items数组的每个item项,然后为每个项创建一个 ion-item-sliding指令。注意我们使用的是#item而不是item。这将创建一个本地引用到迭代获得的item,这让我们可以使用 { {item.title} } 输出标题,它还允许我们传递item的引用到我们的 removeItem 函数。
我们现在有了一个列表包含所有数据,用户可以滑动并显示出一个delete按钮。现在剩下的是当用户点击时做点什么事。因此我们设置一个简单监听以便调用方法从我们先前创建的测试数据中删除一项。

4.创建方法删除数据

现在我们去到 home.js 文件编写方法处理数据删除。当前但删除按钮被点击时传送一个数据项给 removeItem。类似的,你可以非常容易的实现例如删除、编辑、分享、播放动画等你需要的东西,不仅是删除。

修改 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);
      }

    }

  }

}

现在你向左侧滑动列表项,然后点击删除按钮,它就会从列表中删除。就像下面这样:



 
删除例子

5.添加一个编辑按钮

这里将不会将Edit按钮的全过程走一遍,但是你可以轻易扩展活动项并添加编辑按钮,如下所示:

<ion-item-options>
  <button primary>Edit</button>
  <button danger (click)="removeItem(item)"><icon trash></icon> Delete</button>
</ion-item-options>

现在滑动时你有两个按钮了,看下面:



 
添加编辑按钮

然后你可以编写Edit按钮的点击事件了,具体取决于你的需求。

总结

Ionic2 这个特性真是太棒了,不仅能删除,还能轻易的添加其它按钮。
这同时也是一个非常完美的UI元素节省屏幕空间,不会显示这些信息除非你滑动屏幕。

  • 大小: 17.7 KB
  • 大小: 7.9 KB
0
0
分享到:
评论

相关推荐

    Ionic 2 实现列表滑动删除按钮的方法

    在上篇文章给大家介绍了ionic中列表项增加和删除的实现方法,接下来通过本文给大家介绍Ionic 2 实现列表滑动删除按钮的方法,具体内容详情如下所示: 使用Ionic这种框架伟大的地方在于用户界面元素默认准备好了,...

    ionic 购物车商城模板

    `Ionic`的网格系统和列表组件非常适合用来展示商品,同时,通过服务层处理商品数据的获取和分类,可以实现动态加载和分类切换。 ### 4. 用户交互设计 `Ionic`提供了多种过渡动画和手势识别,使得用户在浏览商品、...

    ionic 列表

    ionic 列表 列表是一个应用广泛的界面元素,在所有移动app中几乎都会使用到。 列表可以是基本文字、按钮,开关,图标和缩略图等。 列表项可以是任何的HTML元素。容器元素需要list类,每个列表项需要使用item类。 ...

    Ionic-List-Enhanced:一个移动入门应用程序,展示了具有动态控件的 Ionic Framework 列表元素的增强版本

    通过从右向左滑动每个列表元素可以访问列表元素右侧的隐藏选项按钮。 安装 此入门应用程序需要Node.js,Cordova和Ionic。 将项目文件夹下载到您的机器并运行: cd /APP_PATH ionic serve 要在设备上进行测试,请...

    ionic-weather:通过构建一个简单的天气应用程序来修改 ionic

    5. **滑出式选项按钮**:在列表项上滑动时显示更多操作,例如删除或查看详情。使用 `ion-item-sliding` 和 `ion-item-options` 可以实现这一功能。 接下来,我们关注 UI/UX 方面的修改: 6. **社会保障局(SASS)...

    TodoApp:原文来自todo app ionic官网,做一些修改,刷列表可以删除

    - **触摸事件**:Ionic针对移动设备优化了触摸事件,如滑动删除,使应用更具移动友好的交互体验。 - **状态切换**:通过复选框或按钮切换待办事项的状态。 7. ** 深入理解Angular ** - **服务**:创建服务...

    ionic_parse_todo:带有 Ionic Framework 和 Parse.com 的 todo 应用程序示例

    在“ionic_parse_todo”项目中,我们可以看到如何使用Ionic的这些组件来构建用户友好的交互界面,例如添加、编辑和删除待办事项的表单和按钮。 接下来,我们讨论Parse.com。这是一个云服务,提供RESTful API,...

    ionic-workshop-journal:从基础标签项目开始,我们逐步添加日记!

    在我们的日记帐分录列表中添加要删除的滑动以及用于处理删除的控制器逻辑 添加了将日记对象保存到本地存储的功能,以便持久存在(以及下次提交中对ng-repeat跟踪的修复) 即将推出:编辑您的条目! 安装依赖项 首先...

    ionic-v1-bucket-list:准备实习

    Ionic v1提供了丰富的UI组件,如导航、滑动、下拉刷新等,使得开发者能够专注于应用功能的实现,而不用过多关注视觉样式。在`ionic-v1-bucket-list`中,它负责提供用户界面和触摸友好的交互体验。 3. **CouchDB**:...

    AngularJS ionic手势事件的使用总结

    这些事件允许开发者通过触摸屏幕来实现特定的功能,为用户提供更加直观和自然的交互体验。本文将深入探讨 AngularJS ionic 中的手势事件,包括长按(on-hold)、敲击(on-tap)和双击(on-double-tap)。 1. 长按...

    javascript实用特效及帮助文档

    通过修改元素的CSS属性或添加/删除CSS类,可以实现各种视觉效果。 五、动画效果 JavaScript可以用来创建各种动画效果,如淡入淡出、滑动、旋转等。这些效果通常通过改变元素的位置、透明度或其他视觉属性来实现,...

    TakashibaRyoya1.github.io

    2. **事件处理**:JavaScript可以监听用户的键盘、鼠标等输入,响应用户的交互,例如点击按钮、滚动页面等。 3. **AJAX**:Asynchronous JavaScript and XML(异步JavaScript和XML)允许在不刷新整个页面的情况下,...

    wineCart:Ionics Paypal 购物车

    比如,商品列表可能使用`ion-list`,而购物车按钮则可能通过`ion-item`和`ion-checkbox`来实现。此外,滑动效果和动画的实现,也充分利用了Ionics的动画库。 **6. 测试与调试** 为了确保`wineCart`在不同设备上的...

    109DCT_mobile

    这些应用可以使用WebView在原生移动应用中运行,或者通过框架如React Native、Ionic或Apache Cordova以混合应用的形式实现原生功能。109DCT可能代表某种特定的算法、库或技术栈,但没有更多信息,无法进一步解释其...

    myStudyApp-final-stage

    myStudyApp可能利用DOM API来创建、查找和修改UI元素,比如按钮、文本框和列表,以实现动态显示和更新学习资料。 其次,JavaScript的事件驱动特性在myStudyApp中发挥着关键作用。用户与应用的交互,如点击、滑动等...

Global site tag (gtag.js) - Google Analytics