- 应用开发平台简介(新版)
- 开发应用
- 开发流程概述
- 创建应用
- 获取开发者权限
- 添加应用能力
- 配置应用:(可选)添加开发人员
- 开发 AI 应用
- 发布应用
- 监控应用
- 开发小程序应用
- 开发网页应用
- 开发酷应用
- 开发机器人应用
- 服务端 API
- 开发指南
- 身份验证(免登)
- 获取访问凭证
- 通讯录管理
- 上下游组织
- 上下级组织
- 服务窗
- 即时通信IM
- 钉钉客联
- 考勤
- 智能人事
- OA 审批
- 智能填表
- 日程
- 待办任务
- Teambition 项目管理
- 日志
- 签到
- 文档/文件
- 公告
- 钉工牌
- 音视频
- 工作台
- 互动卡片
- 企业文化
- 宜搭应用开发
- 专属开放
- 客户管理(官方CRM)
- 行业开放
- 生态开放
- 应用管理
- 智能硬件
- 附录
- 事件订阅
- 参考
- 常见问题
- 历史文档(不推荐)
- 钉钉云
- HTTP回调
- 审批待办
- 旧版宜搭API参考
- 通讯录管理
- 钉钉红 包
- 身份验证(免登)
- 花名册
- 行业连接
- 日程
- 开发前必读
- 开发钉钉应用
- H5微应用
- 服务端API
- 通用能力
- 常见问题
- 新版服务端API(DingTalk OpenAPI)
- 生态伙伴API
- 小程序
- 钉钉小程序介绍
- 小程序开发工具
- 小程序运行/更新机制
- 框架
- 基础组件
- 小程序JSAPI
- JSAPI总览
- 免登授权码
- 地图
- 创建地图对象MapContex
- MapContext
- MapContext 概览
- 计算地图路径(calculateDistance)
- 添加/删除/ 更新指定标记(changeMarkers)
- 清除步行导航路线(clearRoute)
- 设置所有手势是否可用(gestureEnable)
- 获取当前地图中心位置(getCenterLocation)
- 获取地图属性(getMapProperties)
- 获取地图整体的视野范围(getRegion)
- 移动视野到定位点(moveToLocation)
- 规划默认步行路线(showRoute)
- 设置指南针是否可见(showsCompass)
- 设置比例尺控件是否可见(showsScale)
- 指定标记进行动画(smoothMoveMarker)
- 轨迹动画(smoothMovePolyline)
- 平移点标记(translateMarker)
- 增量更新地图(updateComponents)
- 点标记(Marker)图鉴
- 开放接口
- 基础
- 更 新管理小程序
- 网络
- 多媒体
- 界面
- 显示模式
- 导航栏
- TabBar
- 交互反馈
- 离开页面二次确认
- 下拉刷新
- 选择日期
- 动画
- 画布
- 创建canvas
- CanvasContext
- CanvasContext概览
- 把画布内容导出成图片(toTempFilePath)
- 文本对齐方式(setTextAlign)
- 文本基线(setTextBaseline)
- 设置填充色(setFillStyle)
- 设置边框颜色(setStrokeStyle)
- 设置阴影样式(setShadow)
- 创建线性的渐变色(createLinearGradient)
- 创建圆形的渐变色(createCircularGradient)
- 创建渐变点(addColorStop)
- 设置线条宽度(setLineWidth)
- 设置线条的端点样式(setLineCap)
- 设置线条的交点样式(setLineJoin)
- 设置最大斜接长度(setMiterLimit)
- 创建矩形(rect)
- 填充矩形(fillRect)
- 画一个矩形(strokeRect)
- 清除画布上矩形区域内的内容(clearRect)
- 填充内容(fill)
- 画出当前路径的边框(stroke)
- 创建路径(beginPath)
- 关闭一个路径(closePath)
- 移动路径(moveTo)
- 增加一个新点(lineTo)
- 画一条弧线(arc)
- 创建三次方贝塞尔曲线路径(bezierCurveTo)
- 设置为剪切路径(clip)
- 创建二次贝塞尔曲线路径(quadraticCurveTo)
- 缩放(scale)
- 顺时针旋转(rotate)
- 变换原点坐标(translate)
- 设置字体大小(setFontSize)
- 绘制被填充的文本(fillText)
- 绘制图像(drawImage)
- 设置全局画笔透明度(setGlobalAlpha)
- 保存当前绘图上下文(save)
- 恢复绘图上下文(restore)
- 将描述画到画布中(draw)
- 获取canvas区域隐含的像素数据(getImageData)
- 将像素数据绘制到画布(putImageData)
- 键盘
- 滚动
- 节点查询
- 位置
- 缓存
- 设备
- 拉群11
- 拉取
列表渲染
a:for#
a:for
属性可以绑定一个数组,然后就可以使用数组中各项的数据重复渲染该组件。index
,数组当前项的变量名默认为item
。<view a:for="{{array}}">
{{index}}: {{item.message}}
</view>
Page({
data: {
array: [{
message: 'foo',
}, {
message: 'bar'
}]
}
})
a:for-item
可以指定数组当前元素的变量名。a:for-index
可以指定数组当前下标的变量名。<view a:for="{{array}}" a:for-index="idx" a:for-item="itemName">
{{idx}}: {{itemName.message}}
</view>
a:for
也可以嵌套,下边是一个九九乘法表。<view a:for="{{[1, 2, 3, 4, 5, 6, 7, 8, 9]}}" a:for-item="i">
<view a:for="{{[1, 2, 3, 4, 5, 6, 7, 8, 9]}}" a:for-item="j">
<view a:if="{{i <= j}}">
{{i}} * {{j}} = {{i * j}}
</view>
</view>
</view>
block a:for#
block a:if
,可以将a:for
用在<block/>
标签上,以渲染一个包含多节点的结构块。<block a:for="{{[1, 2, 3]}}">
<view> {{index}}: </view>
<view> {{item}} </view>
</block>
a:key#
<input/>
中的输入内容,<switch/>
的选中状态),需要使用 a:key 来指定列表中项目的唯一的标识符。a:key
的值以两种形式来提供。for
循环的array
中item
的某个属性。该属性的值需要是列表中唯一的字符串或数字,并且不能动态的改变。*this
,代表在for
循环中的item
本身,表示需要item
本身是唯一的字符串或者数字,比如当数据改变触发渲染层重新执行渲染的时候,会校正带有key
的组件,框架会确保他们重新被排序,而不是重新创建,确保使组件保持自身的状态,并且提高列表渲染时的效率。<view class="container">
<view a:for="{{list}}" a:key="*this">
<view onTap="bringToFront" data-value="{{item}}">
{{item}}: click to bring to front
</view>
</view>
</view>
Page({
data:{
list:['1', '2', '3', '4'],
},
bringToFront(e) {
const { value } = e.target.dataset;
const list = this.data.list.concat();
const index = list.indexOf(value);
if (index !== -1) {
list.splice(index, 1);
list.unshift(value);
this.setData({ list });
}
}
});
key#
<view class="container">
<view a:for="{{list}}" key="{{item}}">
<view onTap="bringToFront" data-value="{{item}}">
{{item}}: click to bring to front
</view>
</view>
</view>
Page({
data:{
list:['1', '2', '3', '4'],
},
bringToFront(e) {
const { value } = e.target.dataset;
const list = this.data.list.concat();
const index = list.indexOf(value);
if (index !== -1) {
list.splice(index, 1);
list.unshift(value);
this.setData({ list });
}
}
});
<input a:if="{{name}}" placeholder="Enter your username"/>
<input a:else placeholder="Enter your email address"/>
<input key="name" a:if="{{name}}" placeholder="Enter your username"/>
<input key="email" a:else placeholder="Enter your email address"/>

【钉钉】API开发者 微信交流群
用微信扫右侧二维码,加入【钉钉】API开发者 交流群,互助沟通

