文档中心 > 店铺动态卡片-开发指引

数据绑定

更新时间:2023/02/03 访问次数:23072

AXML 中的动态数据与对应的 Pagedata 内容绑定。


一、简单绑定


数据绑定使用 Mustache 语法将变量用两对大括号({{}})封装,可以在多种语法场景下使用。


1. 内容


<view> {{ message }} </view>


Page({
  data: {
    message: 'Hello taobao!',
  },
});


2. 组件属性


组件属性需使用双引号("")封装。


<view id="item-{{id}}"> </view>


Page({
  data: {
    id: 0,
  },
});


3. 控制属性


控制属性需使用双引号("")封装。


<view a:if="{{condition}}"> </view>


Page({
  data: {
    condition: true,
  },
});


4. 关键字


关键字需使用双引号封装("")。


1)true:boolean 类型的 true,代表真值。

2)false: boolean 类型的 false,代表假值。


<checkbox checked="{{false}}"> </checkbox>


注意: 不要直接写 checked="false",计算结果是一个字符串,转成布尔值类型后代表真值。


二、运算


可用两对大括号({{}}) 封装简单的运算。支持如下几种方式:


1. 三元运算


<view hidden="{{flag ? true : false}}"> Hidden </view>


2. 算数运算


<view> {{a + b}} + {{c}} + d </view>


Page({
  data: {
    a: 1,
    b: 2,
    c: 3,
  },
});


页面输出内容为 3 + 3 + d


3. 逻辑判断


<view a:if="{{length > 5}}"> </view>


4. 字符串运算


<view>{{"hello" + name}}</view>


Page({
  data:{
    name: 'taobao',
  },
});


5. 数据路径运算


<view>{{object.key}} {{array[0]}}</view>


Page({
  data: {
    object: {
      key: 'Hello ',
    },
    array: ['taobao'],
  },
});


三、组合


可在 Mustache 语法内直接进行组合,构成新的对象或者数组。


1. 数组


<view a:for="{{[zero, 1, 2, 3, 4]}}"> {{item}} </view>


Page({
  data: {
    zero: 0,
  },
});


最终组合成数组 [0, 1, 2, 3, 4]


2. 对象


<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}


FAQ

关于此文档暂时还没有FAQ
返回
顶部