四时宝库

程序员的知识宝库

微信小程序(数据绑定)(微信小程序数据绑定原理)

数据绑定

数据绑定使用Mustache(双大括号)将变量包起来,如下:

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

而变量message在对应*.js文件中Page对象中进行设置,如下:

Page({

data: {

message: 'Hello Fancye'

}

})

我们再之前建立的工程下面新建目录demo/bindDataView及其对应文件,用于此次演示:

在index.js文件中编辑内容如下:

var helloData = {name: '老白'}

Page({

data:{

name: helloData.name

},

changeName: function() {

this.setData({name: 'Applet'})

}

})

我们定义了一个helloData变量,并将它的值赋值给Page对象的data变量。页面中所有的动态数据都可以在data 中进行获取。

在index.wxml中编辑内容如下,双大括号中的name值会动态的从page.data.name中获取到:

<view class="container"> Hello {{name}}! </view>

保存代码之后,可以在左边的视图中看到效果:

我们再在index.wxml中添加一个按钮用于动态改变name的值:

<view class="container"> Hello {{name}}! </view>

<button type="primary" bindtap="changeName"> Click me! </button>

在按钮组件属性中,有一个bindtap属性,它是一个事件处理函数,它绑定的参数changeName指向Page中提前配置好的一个Function,点击这个按钮则会触发changeName这个函数,事件在后面文章中将会介绍。

changeName函数定义了一行代码

this.setData({name: 'Applet'})

它的作用是动态改变Page.data的值,this就是Page的引用。

让我们看一下点击按钮前后,name的变化:

点击按钮之前

点击按钮之后

点击按钮之前name的值为“老白”,点击按钮之后,通过setData方法,将name值更改为Applet。

这种数据绑定的方式也可以用于其他方式:

组件属性:

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

条件表达式:

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

关键字:

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

运算符

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

逻辑运算:

<view>{{ length > 5}}</view>

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接