简易双向绑定


当前第2页 返回上一页

用于双向绑定的表达式有如下限制:

  1. 只能是一个单一字段的绑定,如
  2. <input model:value="值为 {{value}}" />
    <input model:value="{{ a + b }}" />
    

    都是非法的;

  3. 目前,尚不能 data 路径,如

    <input model:value="{{ a.b }}" />
    

    这样的表达式目前暂不支持。

在自定义组件中传递双向绑定

双向绑定同样可以使用在自定义组件上。如下的自定义组件:

// custom-component.js
Component({
  properties: {
    myValue: String
  }
})
<!-- custom-component.wxml -->
<input model:value="{{myValue}}" />

这个自定义组件将自身的 ?myValue? 属性双向绑定到了组件内输入框的 ?value? 属性上。这样,如果页面这样使用这个组件:

<custom-component model:my-value="{{pageValue}}" />

当输入框的值变更时,自定义组件的 ?myValue? 属性会同时变更,这样,页面的 ?this.data.pageValue? 也会同时变更,页面 WXML 中所有绑定了 ?pageValue? 的位置也会被一同更新。

在自定义组件中触发双向绑定更新

自定义组件还可以自己触发双向绑定更新,做法就是:使用 setData 设置自身的属性。例如:

// custom-component.js
Component({
  properties: {
    myValue: String
  },
  methods: {
    update: function() {
      // 更新 myValue
      this.setData({
        myValue: 'leaf'
      })
    }
  }
})

如果页面这样使用这个组件:

<custom-component model:my-value="{{pageValue}}" />

当组件使用 ?setData? 更新 ?myValue? 时,页面的 ?this.data.pageValue? 也会同时变更,页面 WXML 中所有绑定了 ?pageValue? 的位置也会被一同更新。



标签:微信小程序

返回前面的内容

相关阅读 >>

微信小程序 扩展组件小程序弹幕组件

微信小程序 setdevpluginapplystatus

微信小程序 组件间关系

微信小程序api 富文本-editorcontext实例

微信小程序api 背景

sdk数据库 database索引

微信小程序 用户信息-授权

微信小程序云开发api 统计集合记录数

微信小程序api 绘图arcto

微信小程序 运维中心getfeedback

更多相关阅读请进入《微信小程序》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...