如何判断中继器是否包含特定值?

639次阅读
没有评论

在中继器的使用过程中,你知道该如何判断中继器是否包含特定值吗?或许你可以使用监听器,在不刷新中继器的前提下,分别判断每一行的值。本篇文章里,作者便做了分析总结,一起来看。

如何判断中继器是否包含特定值?

前言

在电子商务应用类原型中,将商品添加到购物车时,应该先检查该商品是否已经存在于购物车中,如果已经存在,则增加商品数量,否则添加新商品。

一、基础知识

你对中继器监听器了解多少?如果不明白监听器是什么东西,可以先阅读一下《Axure监听之中继器监听》这篇文章。最好能够清楚为什么要用监听器、什么时候用、以及怎么用。

!!!这个知识点是中继器进阶应用的基础,很多以往非常难以实现的交互通过监听器都可轻松实现。

二、简单教程

做一个简单一点的,只判断有无,请准备以下几个元件:

如何判断中继器是否包含特定值?

一个文本框,用来输入值。

一个文本标签,用来显示反馈信息。

本教程为了直观,一物多用,兼记录中继器是否包含文本框的值(可改为全局变量)

一个按钮(起名:添加),用来进行添加操作。

一个中继器(起名:购物车),内部放两个元件:

  • 把默认的列名[[Item.Column0]]改为[[Item.Name]]
  • 默认的矩形,用来显示中继器的内容。
  • 一个隐藏的热区,用来做监听器(起名:监听器)。

先绑定监听的交互,添加(热区)监听器的“旋转时”,判断如果内部[[Item.Name]]列的值等于文件框的值,就把文本标签的值修改成true。

如何判断中继器是否包含特定值?

再在“添加按钮”上新建“单击时”交互,内容是判断文件框是否有内容,如果有内容就先把标签的值改为false,然后触发监听器热区的“旋转时”,最后触发当前组件的“旋转时”进行下一步操作。

继续添加“旋转时”的交互为先判断文件标签的内容是false才添加,否则就在文本标签里给出提示信息。

如何判断中继器是否包含特定值?

上面出现的局部变量[[textField]]就是文本框元件的文本。

如何判断中继器是否包含特定值?

完事儿啦,就这么简单。赶快预览看下吧!

如何判断中继器是否包含特定值?

三、进阶教程

如果我们是要做一个功能相对完善的购物车原型,那上面讲的就过于简单了。通常,我们除了购物车中继器外,还应该有一个商品列表中继器。而且同一个商品可能会添加多次,但是基本原理是相通的,都是要通过监听先判断要添加的值在中继器里是否已存在,无非就是商品已存在时时行数量增加,商品在购物车里不存在时再进行添加。两个中继器间通过一个外部的文本框进行交流。

准备以下元件:

如何判断中继器是否包含特定值?

一个文本框。

一个文本标签。

一个商品列表中继器(起名:商品列表)

  • 把默认的列名[[Item.Column0]]改为[[Item.Name]]
  • 默认的矩形,用来显示中继器的内容。
  • 一个文本框(起名:数量),类型改为“Number”,用来记录需加入购物车的商品数量。
  • 一个添加按钮(起名:“添加”)。

一个购物车中继器(起名:购物车)

  • 把默认的列名[[Item.Column0]]改为[[Item.Name]]
  • “购物车”中继器加一个[[Item.Quantity]]列,代表商品数量。
  • 默认的矩形,用来显示商品名称和数量。
  • 一个隐藏的热区,用来做监听器(起名:监听器)。

还是先把监听上绑在热区的“旋转时”交互上,判断[[Item.Name]]列值如果与文本框内的文本相同,就把文本标签改为true。

如何判断中继器是否包含特定值?

“添加按钮”的交互有一点点小变动,直接设置文本再触发监听器:

如何判断中继器是否包含特定值?

如果购物车里没有当前商品,添加行,记得把“数量”元件里的数值一起保存。

如果购物车存在当前商品,那么更新商品数量:

如何判断中继器是否包含特定值?

这样,进阶的购物车也完成了,看下效果:

如何判断中继器是否包含特定值?

一个完整的购物车功能可能还包含单价、总价、运费、税费、折扣等等属性,有时间再补充。

总结

判断目标中继器是否包含特定值,可以使用监听器在不刷新中继器的前提下分别判断每一行的值。

本文由 @Jorkin 原创发布于人人都是产品经理,未经许可,禁止转载

题图来自 Unsplash,基于 CC0 协议

Read More 

正文完
可以使用微信扫码关注公众号(ID:xzluomor)
post-qrcode
 
评论(没有评论)
Generated by Feedzy