codecamp

支付宝小程序框架 AXML·数据绑定

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

简单绑定

数据绑定使用 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}

常见问题

Q:跳转页面时,怎么清除 data 数据中的数据?

A:无法清除,可以在跳转时覆盖之前的 data 值。

支付宝小程序框架 AXML·介绍
支付宝小程序框架 AXML·条件渲染
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

支付宝小程序开发文档

支付宝小程序 快速示例

支付宝小程序 小程序快速示例

支付宝小程序 框架

支付宝小程序 组件

支付宝小程序组件 基础组件

支付宝小程序组件 无障碍访问

支付宝小程序 扩展组件

支付宝小程序扩展组件 UI组件

支付宝小程序 API

支付宝小程序 开发工具

支付宝小程序 云服务

支付宝小程序 Serverless

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }