小程序textarea如何双向数据绑定?

第一次做小程序项目, 一直在踩坑, 在textarea标签中通过value="{{json.content}}", {{data.json.content}}两种方式都渲染不出来

<textarea class='fs14' value="{{json.content}}" bindinput='_input' rows="3" placeholder="请输入个人名片介绍" maxlength="100" hidden='{{dleg3}}'>
    <text class="currentWordNumber fs12">({{currentNoteLen|0}}/{{noteMaxLen}})</text>
</textarea>

data: {
        maxlength: 100,
        noteMaxLen: 100,
        currentNoteLen: 0,
        json: {
            id: '',
            vcardUserId: 'a20',
            content: '',
            openState: ''
        }
    },
    
_input(event) {
    let value = event.detail.value,
        len = parseInt(value.length)
    let that = this
    this.setData({
        currentNoteLen: len,
        'json.content': value
    })
},

_getWelcomes() {
    model._getWelcomes(this.data.json).then((res) => {
        this.data.json = res.data.vcardWelcome
        // 打印数据, 需要把this.data.json.content的值放在textarea的value中
        console.log('this.data.json', this.data.json);
        
    }).catch((errMsg) => {
        console.log(errMsg)
    }).finally(() => {
        console.log('..')
    })
},

数据打印
clipboard.png

阅读 10.8k
1 个回答

赋值不可以直接赋值, 需要在setData里面赋值才会渲染在DOM上

this.setData({
    'data.json': res.data.vcardWelcome
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题