TYML(Tuya Markup Language)是框架设计的一套标签语言,结合基础组件、事件系统,可以构建出页面的结构。
数据绑定
TYML 中的动态数据均来自对应 Page
的 data
。
简单绑定
数据绑定使用 Mustache
语法(双大括号)将变量包起来,可以作用于:
内容
<view> {
{ message }} </view>
Page({
data: {
message: 'Hello MINA!',
},
});
组件属性(需要在双引号之内)
<view id="item-{
{id}}"> </view>
Page({
data: {
id: 0,
},
});
控制属性(需要在双引号之内)
<view ty:if="{
{condition}}"> </view>
Page({
data: {
condition: true,
},
});
关键字(需要在双引号之内)
true
:boolean 类型的 true,代表真值。 false
: boolean 类型的 false,代表假值。
<checkbox checked="{
{false}}"> </checkbox>
特别注意:不要直接写 checked="false",其计算结果是一个字符串,转成 boolean 类型后代表真值。
运算
可以在{
{}}
内进行简单的运算,支持的有如下几种方式:
三元运算
<view hidden="{
{flag ? true : false}}"> Hidden </view>
算术运算
<view> {
{a + b}} + {
{c}} + d </view>
Page({
data: {
a: 1,
b: 2,
c: 3,
},
});
view
中的内容为 3 + 3 + d
。
逻辑判断
<view ty:if="{
{length > 5}}"> </view>
字符串运算
<view>{
{"hello" + name}}</view>
Page({
data: {
name: 'MINA',
},
});
数据路径运算
<view>{
{object.key}} {
{array[0]}}</view>
Page({
data: {
object: {
key: 'Hello ',
},
array: ['MINA'],
},
});
组合
也可以在 Mustache 内直接进行组合,构成新的对象或者数组。
数组
<view ty:for="{
{[zero, 1, 2, 3, 4]}}"> {
{item}} </view>
Page({
data: {
zero: 0,
},
});
最终组合成数组[0, 1, 2, 3, 4]
。
对象
<template is="objectCombine" data="{
{for: a, bar: b}}"></template>
Page({
data: {
a: 1,
b: 2,
},
});
最终组合成的对象是 {for: 1, bar: 2}
也可以用扩展运算符 ...
来将一个对象展开
<template is="objectCombine" data="{
{...ob