位置:电子教程 > 微信小程序入门教程 (如果看不到内容请使用360浏览器) 推荐学习资源
小程序起步
小程序基础知识
小程序基础语法
当前阅读教程:微信小程序入门教程 > 数据绑定
阅读(22555525)      收藏       赞(5685)      分享
上一篇: 视图层WXML 下一篇: 列表渲染

数据绑定是指我们将在小程序.js文件里,将data定义的各类数据显示在.wxml页面中。当然data里面定义的各类数据可以通过其他方式进行改变。

1.简单绑定

数据简单绑定使用 Mustache 语法(双大括号)将变量包起来。

.wxml文件代码示例

小白教程网www.2d5.net

如下:

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

.js文件代码示例

小白教程网www.2d5.net

如下:

Page({

  data: {

    message: 'Hello MINA!'

  }

})

组件属性(需要在双引号之内).wxml文件代码示例

小白教程网www.2d5.net

如下:

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

.js文件代码示例

小白教程网www.2d5.net

如下:

Page({

  data: {

    id: 0

  }

})

控制属性(需要在双引号之内)

.wxml文件代码示例

小白教程网www.2d5.net

如下:

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

       .js文件代码示例

小白教程网www.2d5.net

如下:

Page({

  data: {

    condition: true

  }

})

关键字(需要在双引号之内)

n  trueboolean 类型的 true,代表真值。

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

.wxml文件代码示例

小白教程网www.2d5.net

如下:

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

 

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

2.运算

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

三元运算,.wxml文件代码示例

小白教程网www.2d5.net

如下:

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

算数运算,.wxml文件代码示例

小白教程网www.2d5.net

如下:

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

.js文件代码示例

小白教程网www.2d5.net

如下:

Page({

  data: {

    a: 1,

    b: 2,

    c: 3

  }

})

view中的内容为 3 + 3 + d

逻辑判断,.wxml文件代码示例

小白教程网www.2d5.net

如下:

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

字符串运算,.wxml文件代码示例

小白教程网www.2d5.net

如下:

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

.js文件代码示例

小白教程网www.2d5.net

如下:

Page({

  data:{

    name: 'MINA'

  }

})

数据路径运算,.wxml文件代码示例

小白教程网www.2d5.net

如下:

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

.js文件代码示例

小白教程网www.2d5.net

如下:

Page({

  data: {

    object: {

      key: 'Hello '

    },

    array: ['MINA']

  }

})

3.组合

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

(1)数组

.wxml文件代码示例

小白教程网www.2d5.net

如下:

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

       .js文件代码示例

小白教程网www.2d5.net

如下:

Page({

  data: {

    zero: 0

  }

})

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

(1)对象

.wxml文件代码示例

小白教程网www.2d5.net

如下:

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

.js文件代码示例

小白教程网www.2d5.net

如下:

Page({

  data: {

    a: 1,

    b: 2

  }

})

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

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

.wxml文件代码示例

小白教程网www.2d5.net

如下:

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

.js文件代码示例

小白教程网www.2d5.net

如下:

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文件代码示例

小白教程网www.2d5.net

如下:

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

       .js文件代码示例

小白教程网www.2d5.net

如下:

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}。花括号和引号之间如果有空格,将最终被解析成为字符串。

.wxml文件代码示例

小白教程网www.2d5.net

如下:  

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

  {{item}}

</view>

等同于

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

  {{item}}

</view>


上一篇: 视图层WXML 下一篇: 列表渲染
毕业设计网             广告联系QQ:45157718(微信同号)