Axure中继器交互完全指南:核心函数解析×场景实战×避坑策略(懂得才能应用)

亲爱的小伙伴,在您浏览之前,烦请已关注一下,在此深表感谢!如有帮助请订阅专栏!
Axure产品经理精品视频课https://edu.csdn.net/course/detail/40420

主要内容:中继器核心函数解析、场景方法详解、注意事项、特殊函数区别

课程目标:提高中继器的掌握能力,提升数据处理能力

第一部分为中继器函数列表,从第二部分开始介绍中继器函数使用的方法详解、注意事项、特殊函数区别,这一篇基本就可以掌握中继器函数的应用了,不是广告,良心博主,让每个同学学会才是发文的目的。(特别声明:本文不适合没有耐心学习的同学)


一、中继器常用重要函数列表
(一)、数据集操作函数
1. 数据加载与刷新

[[Item.Repeater.loadData(JSON数据)]] – 加载JSON格式数据

[[Item.Repeater.refresh()]] – 刷新中继器数据

2. 项目增删改

[[Item.Repeater.addItem()]] – 添加空项目

[[Item.Repeater.addItem(数据对象)]] – 添加带数据的项目

[[Item.Repeater.removeItem(目标项)]] – 删除指定项目

[[Item.Repeater.removeCurrent()]] – 删除当前项目

[[Item.Repeater.updateItem(目标项, 更新数据)]] – 更新指定项目

[[Item.Repeater.updateCurrent(更新数据)]] – 更新当前项目

(二)、数据查询与筛选
1. 筛选函数

[[Item.Repeater.filter(条件表达式)]]

[[Item.Repeater.removeFilter()]] – 移除所有筛选

[[Item.Repeater.removeFilter(筛选名称)]] – 移除特定筛选

2. 排序函数

[[Item.Repeater.sort(属性名, "asc"/"desc")]]

[[Item.Repeater.sort(排序函数)]] – 使用自定义排序函数

[[Item.Repeater.removeSort()]] – 移除排序

(三)、分页函数

[[Item.Repeater.setPageSize(数量)]] – 设置每页显示项数

[[Item.Repeater.pageNext()]] – 下一页

[[Item.Repeater.pagePrevious()]] – 上一页

[[Item.Repeater.setCurrentPage(页码)]] – 跳转到指定页

[[Item.Repeater.pageFirst()]] – 首页

[[Item.Repeater.pageLast()]] – 末页

(四)、属性与状态函数
1. 项目属性

[[Item.属性名]] – 访问当前项目的属性

[[Item.index]] – 当前项目索引(0开始)

[[Item.visibleIndex]] – 当前可见项目索引

[[Item.isFirst]] – 是否第一个项目

[[Item.isLast]] – 是否最后一个项目

[[Item.isEven]] – 是否偶数索引

[[Item.isOdd]] – 是否奇数索引

[[Item.isMarked]] – 项目是否被标记

2. 中继器状态

[[Item.Repeater.itemCount]] – 总项目数

[[Item.Repeater.visibleItemCount]] – 可见项目数

[[Item.Repeater.pageCount]] – 总页数

[[Item.Repeater.pageIndex]] – 当前页码(1开始)

[[Item.Repeater.data]] – 获取所有数据

[[Item.Repeater.name]] – 中继器名称

(五)、标记与选择函数

[[Item.Repeater.markAll()]] – 标记所有项目

[[Item.Repeater.unmarkAll()]] – 取消所有标记

[[Item.Repeater.toggleAll()]] – 切换所有标记状态

[[Item.Repeater.markItem(目标项)]] – 标记特定项目

[[Item.Repeater.unmarkItem(目标项)]] – 取消标记特定项目

[[Item.Repeater.toggleItem(目标项)]] – 切换特定项目标记状态

(六)、实用函数

[[Item.Repeater.forEachItem(回调函数)]] – 遍历所有项目

[[Item.Repeater.visibleItems]] – 获取所有可见项目

[[Item.Repeater.getItemsByRange(开始索引,结束索引)]] – 获取范围内的项目


二、Axure中继器函数在核心场景中的交互设计规范
(一)、中继器添加数据
事件设置

触发事件:通常为按钮的”单击时”或表单的”提交时”事件

目标对象:需要添加数据的中继器组件

动作配置

选择”中继器”>

在函数编辑器中设置数据对象

函数书写规范
[[{
    "id": [[Item.Repeater.itemCount + 1]],  // 自动递增ID
    "name": [[LVAR1]],  // 引用表单输入值
    "price": [[Number(LVAR2)]],  // 确保数值类型
    "createTime": [[Now.getDate()]],  // 添加时间戳
    "status": "active"  // 默认状态
}]]
最佳实践

添加后清空表单:在同一个事件中添加”设置文本”动作清空输入框

添加成功提示:配合”显示”动作弹出toast提示

(二)、中继器删除数据
事件设置

触发事件:行内删除按钮的”单击时”事件

目标对象:当前行或指定行

动作配置

选择”中继器” → “删除行”

选择目标行参数

函数书写规范
// 删除当前行
[[Item.Repeater.removeItem(Item)]]

// 根据条件删除(如删除所有已完成项)
[[Item.Repeater.removeItems(Item.Repeater.filter("status=='completed'"))]]
最佳实践

添加确认对话框:先触发”显示”动作弹出确认框,确认后再执行删除

删除动画:为行添加淡出动画增强体验

(三)、中继器排序数据
事件设置

触发事件:表头点击或排序按钮的”单击时”事件

目标对象:需要排序的中继器

动作配置

选择”中继器” → “添加排序”

设置排序属性和方向

函数书写规范
// 单字段排序
[[Item.Repeater.sort("price", "desc")]]

// 多字段组合排序
[[Item.Repeater.sort("department, -salary")]]  // 部门升序,薪资降序

// 动态方向(配合变量)
[[Item.Repeater.sort("createTime", [[sortDirection]])]]
最佳实践

视觉反馈:排序后更改表头图标方向(↑/↓)

状态记忆:用全局变量存储当前排序状态

(四)、中继器筛选数据
事件设置

触发事件:筛选按钮点击或输入框的”文本改变时”事件

目标对象:需要筛选的中继器

动作配置

选择”中继器” → “添加筛选”

设置筛选条件表达式

函数书写规范
// 精确匹配
[[Item.Repeater.filter("department=='销售部'")]]

// 模糊搜索
[[Item.Repeater.filter("name.contains([[searchText]])")]]

// 范围筛选
[[Item.Repeater.filter("price>="+[[minPrice]]+" && price<="+[[maxPrice]])]]

// 多条件组合
[[Item.Repeater.filter("(status=='active' || status=='pending') && priority=='high'")]]
最佳实践

防抖处理:对输入框搜索添加300ms延迟触发

空状态提示:当[[visibleItemCount==0]]时显示”无结果”提示

(五)、中继器修改数据
事件设置

触发事件:行内编辑按钮点击或单元格的”文本改变时”事件

目标对象:需要修改的行

动作配置

选择”中继器” → “更新行”

设置目标行和更新数据

函数书写规范
// 更新当前行
[[Item.Repeater.updateItem(Item, {
    "name": [[newName]],
    "price": [[newPrice]],
    "modifiedTime": [[Now.getDate()]]
})]]

// 批量更新(如全部打八折)
[[Item.Repeater.updateItems(
    Item.Repeater.filter("category=='电子产品'"),
    {"price": [[Item.price*0.8]]}
)]]
最佳实践

编辑模式:点击编辑按钮切换行到可编辑状态

版本控制:添加modifiedTime字段记录修改时间

(六)、中继器标记行
事件设置

触发事件:复选框的”选中改变时”或行的”单击时”事件

目标对象:需要标记的行

动作配置

选择”中继器” → “标记行”

设置目标行参数

函数书写规范
// 标记当前行
[[Item.Repeater.markItem(Item)]]

// 标记所有可见行
[[Item.Repeater.markItems(Item.Repeater.visibleItems)]]

// 条件标记(如标记所有高优先级项)
[[Item.Repeater.markItems(Item.Repeater.filter("priority=='high'"))]]
最佳实践

视觉区分:通过[[Item.isMarked]]设置行样式变化

批量操作:提供”全选/反选”按钮控制标记状态

(七)、中继器取消标记行
事件设置

触发事件:复选框取消选中或取消选择按钮点击

目标对象:需要取消标记的行

动作配置

选择”中继器” → “取消标记行”

设置目标行参数

函数书写规范
// 取消当前行标记
[[Item.Repeater.unmarkItem(Item)]]

// 取消所有标记
[[Item.Repeater.unmarkAll()]]

// 条件取消(如取消已完成项的标记)
[[Item.Repeater.unmarkItems(Item.Repeater.filter("status=='completed'"))]]
最佳实践

状态同步:取消标记时同步更新相关按钮状态

撤销功能:提供撤销操作快捷方式


三、关于selected函数与mark函数基于标记选中的认识问题
(一). 中继器默认的选中/标记函数

中继器没有直接的 selected 函数,但可以使用 mark(标记) 来模拟选中状态:

(1)标记项目(类似选中)

[[Item.Repeater.markItem(Item)]] → 标记某个项目(相当于选中)

[[Item.Repeater.unmarkItem(Item)]] → 取消标记(相当于取消选中)

[[Item.isMarked]] → 判断当前项目是否被标记(相当于 selected

示例:

点击行选中(标记)

[[Item.Repeater.markItem(Item)]]

判断是否选中(标记)

[[Item.isMarked]]  // 返回 true/false

取消选中

[[Item.Repeater.unmarkItem(Item)]]
(2)获取所有选中的项目

[[Item.Repeater.markedItems]] → 返回所有被标记(选中)的项目数组


(二). 自定义 selected 属性

如果不想用 mark,可以在中继器数据中手动添加 selected 字段,并通过交互更新它:

(1)数据列添加 selected 字段
id name selected
1 项目A false
2 项目B false
(2)交互设置选中
[[Item.selected = true]]  // 设置为选中
[[Item.selected = false]] // 取消选中
(3)条件筛选选中项
[[Item.Repeater.filter("selected == true")]]  // 只显示选中的项目

(三). 对比 mark vs 自定义 selected
方式 优点 缺点
mark(标记) Axure 内置,无需额外数据列 只能有一个标记状态
自定义 selected 可扩展(如多选、单选) 需手动管理数据

Axure 没有原生的 selected 函数,但可以用 mark(标记) 或 自定义 selected 属性 实现选中效果。

推荐方法

单选 → 用 mark[[Item.isMarked]]

多选 → 用自定义 selected 字段 + filter 筛选


四、Axure中继器交互设计常见问题规避指南(场景化版)
(一)、新增数据时

常见问题:重复提交、数据不完整、ID冲突
规避方案

在提交按钮添加「禁用状态」交互:

提交后立即禁用按钮

操作完成或失败后恢复

设置必填验证:

关键字段为空时显示红色警示框

使用「元件可见」条件控制提示显示

ID自动生成策略:

采用「当前时间戳+随机数」组合

或使用「中继器项目总数+1」方式

(二)、修改数据时

常见问题:误修改、数据覆盖、无修改记录
规避方案

添加确认对话框:

修改前弹出「确认修改?」对话框

提供修改前后数据对比

版本控制:

自动添加「最后修改时间」字段

保留原始数据副本(通过新增「修改历史」中继器)

字段级修改:

使用「文本输入框」代替直接文本修改

添加「保存」和「取消」按钮

(三)、删除数据时

常见问题:误删除、重要数据删除、无回收机制
规避方案

二级确认机制:

第一次点击显示「删除图标」

第二次点击才实际删除

重要数据保护:

对关键数据添加「删除禁用」标记

删除前检查关联数据是否存在

回收站功能:

改为标记为「已删除」状态

提供「回收站」中继器查看已删除项

(四)、筛选数据时

常见问题:条件冲突、性能卡顿、无结果提示
规避方案

筛选条件分组:

将筛选条件分为「主要条件」和「次要条件」

使用「筛选条件指示器」显示当前生效条件

延迟执行策略:

输入框停止输入300ms后才执行筛选

复杂条件添加「立即筛选」按钮

空状态处理:

筛选结果为0时显示「无数据」插画

提供「清除筛选」快捷按钮

(五)、标记行操作

常见问题:误标记、标记状态丢失、多页标记混乱
规避方案

视觉强化:

被标记行添加高亮边框+底色变化

在行首显示明显勾选图标

状态持久化:

使用全局变量存储已标记项ID集合

翻页时自动恢复标记状态

批量操作提示:

显示「已选择X项」计数标签

提供「全选本页」和「全不选」按钮

(六)、取消标记时

常见问题:误取消、多选操作繁琐、状态不同步
规避方案

取消确认:

批量取消时要求确认

重要数据取消标记时弹出提示

快捷操作:

添加「取消所有标记」按钮

支持Shift+点击连续取消

状态同步:

取消标记后立即更新相关按钮状态

列表头复选框自动同步全选状态

(七)、获取索引时

常见问题:分页索引错乱、可见项计算错误
规避方案

分页序号处理:

显示序号 = (当前页-1)*每页数量 + visibleIndex +1

在表头明确标注「当前显示X-X条」

多维度索引:

同时显示「全局序号」和「本页序号」

排序后保持序号连续性(使用固定ID)

空值保护:

对可能为空的索引值提供默认值

添加索引越界检测逻辑

通用建议

添加操作日志区域:

记录关键操作(谁在什么时间做了什么)

可设置为自动隐藏/展开

异常状态设计:

网络延迟时的加载动画

操作失败的恢复引导

移动端适配:

增大点击热区

避免悬停交互依赖


如对你有帮助,请订阅博主专栏:

《Axure疑难杂症专栏》https://blog.csdn.net/benleiqiang/category_12961170.html《Axure应用交互设计专栏》https://blog.csdn.net/benleiqiang/category_12803093.html

如有其他相关问题,欢迎私信沟通,已关注  结构化知识课堂-CSDN博客

明天的产品大咖就是你,创作不易,麻烦已关注一下,点赞+收藏,感谢大家!

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容