AXML 中的动态数据与对应的 Page
中 data
内容绑定。
简单绑定
数据绑定使用 Mustache 语法将变量用两对大括号({{}}
)封装,可以在多种语法场景下使用。
内容
<view> {{ message }} </view>
Page({
data: {
message: 'Hello alipay!',
},
});
组件属性
组件属性需使用双引号(""
)封装。
<view id="item-{{id}}"> </view>
Page({
data: {
id: 0,
},
});
控制属性
控制属性需使用双引号(""
)封装。
<view a:if="{{condition}}"> </view>
Page({
data: {
condition: true,
},
});
关键字
关键字需使用双引号封装(""
)。
- true:boolean 类型的 true,代表真值。
- false: boolean 类型的 false,代表假值。
<checkbox checked="{{false}}"> </checkbox>
说明:不要直接写
checked="false"
,计算结果是一个字符串,转成布尔值类型后代表真值。运算
可用两对大括号({{}}
) 封装简单的运算。支持如下几种方式:
三元运算
<view hidden="{{flag ? true : false}}"> Hidden </view>
算数运算
<view> {{a + b}} + {{c}} + d </view>
Page({
data: {
a: 1,
b: 2,
c: 3,
},
});
页面输出内容为 3 + 3 + d
。
逻辑判断
<view a:if="{{length > 5}}"> </view>
字符串运算
<view>{{"hello" + name}}</view>
Page({
data:{
name: 'alipay',
},
});
数据路径运算
<view>{{object.key}} {{array[0]}}</view>
Page({
data: {
object: {
key: 'Hello ',
},
array: ['alipay'],
},
});
组合
可在 Mustache 语法内直接进行组合,构成新的对象或者数组。
数组
<view a:for="{{[zero, 1, 2, 3, 4]}}"> {{item}} </view>
Page({
data: {
zero: 0,
},
});
最终组合成数组 [0, 1, 2, 3, 4]
。
对象
<template is="objectCombine" data="{{foo: a, bar: b}}"></template>
Page({
data: {
a: 1,
b: 2,
},
});
最终组合成的对象是 {foo: 1, bar: 2}
。
也可用解构运算符 ...
来将一个对象展开:
<template is="objectCombine" data="{{...obj1, ...obj2, e: 5}}"></template>
Page({
data: {
obj1: {
a: 1,
b: 2,
},
obj2: {
c: 3,
d: 4,
},
},
});
最终组合成的对象是 {a: 1, b: 2, c: 3, d: 4, e: 5}
。
如果对象 key 和 value 相同,也可以间接地表达:
<template is="objectCombine" data="{{foo, bar}}"></template>
Page({
data: {
foo: 'my-foo',
bar: 'my-bar',
},
});
最终组合成的对象是 {foo: 'my-foo', bar:'my-bar'}
。
上面的方式可以随意组合,但是变量名相同时,后边的变量会覆盖前面的变量,比如:
<template is="objectCombine" data="{{...obj1, ...obj2, a, c: 6}}"></template>
Page({
data: {
obj1: {
a: 1,
b: 2,
},
obj2: {
b: 3,
c: 4,
},
a: 5,
},
});
最终组合成的对象是 {a: 5, b: 3, c: 6}
。
文档内容是否对您有帮助?