vue双向绑定的时候把数组转为了字符串,如何再转回去数组

clipboard.png
如上图,我想把数组以“|”分割解析到Input中,但是我在input中输入值之后如何再双向绑定到数组中呢?

阅读 9.5k
3 个回答

你这个操作是不对的嘞,v-model绑定的值应该是一个变量,而不能是一个表达式。
可以将v-model拆分成value属性和input事件:

<Input :value="kv.value.join('|')" @input="input" />
export default {
    methods: {
        input (value) {
            this.kv.value = value.split('|')
        }
    }
}

各种尝试,终于找到解决办法:
我用的iview,
首先在input上绑定@on-change="inVal" 事件,然后再把所在的数组的每一层遍历的index传入,直接修改当前数组中的这个位置的这个值,在elementui中应该是绑定@input事件,同理。

<div v-else-if="kv.type==='array'">
    <Input v-model="kv.value.join('|')" placeholder="请输入值" @on-change="inVal($event,idx,i,number,index)"/>
</div>
inVal(event,valIndex,itemIndex,condIndex,groupIndex){
        let inValue=this.objDeepCopy(event.target.value.split("|"))
        this.settingList[groupIndex]['condition'][condIndex]['value'][itemIndex]['value'][valIndex]['value']=inValue;
        this.cache();
      },

这里有个demo可以参考下,是以为叫夕水的网友提供的:https://jsbin.com/kivicuvive/...
参考:https://segmentfault.com/q/10...

推荐问题
宣传栏