微信小程序——WXML语法【数据绑定】

含义

数据绑定是指将页面上的数据与页面的视图进行关联,当数据发生变化时,视图会自动更新。

语法

使用 Mustache 语法(双大括号)将变量包起来

步骤

方式分为以下两个步骤:

① 在 页面的 JavaScript 文件中通过data 对象定义数据

② 在 WXML 中使用数据

应用场景 

1、简单绑定 

(1)绑定内容 

WXML内容:

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

JS内容  

Page({
  data: {
    message: 'Hello MINA!'
  }
})
(2)绑定组件属性(需要在双引号之内)

WXML内容:

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

JS内容:

Page({
  data: {
    id: 0
  }
})
(3)绑定控制属性(需要在双引号之内)  

WXML内容:

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

JS内容:

Page({
  data: {
    condition: true
  }
})
(4)绑定关键字(需要在双引号之内)

 WXML内容:

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

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

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

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

2、绑定运算 

可以在 {{}} 内进行简单的运算,支持的有如下几种方式:

(1)三元运算
<view hidden="{{flag ? true : false}}"> Hidden </view>
(2)算数运算

 WXML内容:

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

 JS内容:

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

view中的内容为 3 + 3 + d

(3)逻辑判断  
<view wx:if="{{length > 5}}"> </view>
(4)字符串运算

 WXML内容:

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

JS内容:

Page({
  data:{
    name: 'MINA'
  }
})
(5)数据路径运算

WXML内容: 

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

JS内容:

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

3、组合

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

(1)数组

WXML内容:

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

JS内容:

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

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

(2)对象

WXML内容:

<template is="objectCombine" data="{{foo: a, bar: b}}"></template>

JS内容: 

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

最终组合成的对象是 {foo: 1, bar: 2}。

也可以用扩展运算符... ”来将一个对象展开

WXML内容:

<template is="objectCombine" data="{{...obj1, ...obj2, e: 5}}"></template>

JS内容: 

Page({
  data: {
    obj1: {
      a: 1,
      b: 2
    },
    obj2: {
      c: 3,
      d: 4
    }
  }
})

最终组合成的对象是 {a: 1, b: 2, c: 3, d: 4, e: 5}

如果对象的 key 和 value 相同,也可以间接地表达。

WXML内容:

<template is="objectCombine" data="{{foo, bar}}"></template>

JS内容: 

Page({
  data: {
    foo: 'my-foo',
    bar: 'my-bar'
  }
})

最终组合成的对象是 {foo: 'my-foo', bar:'my-bar'}

注意:上述方式可以随意组合,但是如有存在变量名相同的情况,后边的会覆盖前面,如:

WXML内容: 

<template is="objectCombine" data="{{...obj1, ...obj2, a, c: 6}}"></template>

JS内容: 

Page({
  data: {
    obj1: {
      a: 1,
      b: 2
    },
    obj2: {
      b: 3,
      c: 4
    },
    a: 5
  }
})

最终组合成的对象是 {a: 5, b: 3, c: 6}

注意: 花括号和引号之间如果有空格,将最终被解析成为字符串

WXML内容:

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

等同于

<view wx:for="{{[1,2,3] + ' '}}">
  {{item}}
</view>

 参考文件:微信小程序官方文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值