var vue_object = new Vue({
el: '#app',
data: {
kuan:"200",
gao:"30",
},
computed: {
data_input: function() {
return `
<form class='form'>
<div class='controls'>
宽:<input type="text" v-model="gao" ></input>
//这个地方要实现值得双向绑定,现在没有效果,使用value={this.gao}可以把值传过来但是没有双向绑定的效果,怎样使这个v-model生效return的是模板字符串不是普通的字符串不能‘+’拼接
高:<input type="text" v-model="kuan" ></input>
class='btn btn-danger'>取消</button>
</div>
</form>
`;
}
感觉你这是在乱用computed,html元素不能直接在页面里面吗,为什么非要放在computed里?
因为这个html元素不会直接显示在页面中,只有点击对应的标签之后才会弹出,然后通过这个弹出框设置宽高位置
@爱加注解的小秃头: vue里面直接写的html不一定都直接显示的,有的是可以直接作为模板而不显示的
@E行者: 我现在返回了一个模板字符串包着的表单,就是作为模板使用的,现在在模板中的标签使用v-model不好使
@爱加注解的小秃头: 提前写好用v-if或者v-show控制显隐也可以吧
官网:https://cn.vuejs.org/v2/api/#v-html
更新元素的 innerHTML。注意:内容按普通 HTML 插入 - 不会作为 Vue 模板进行编译。如果试图使用 v-html 组合模板,可以重新考虑是否通过使用组件来替代。
对的,现在就是按普通html插入的,只能获取值传入,不能绑定
@爱加注解的小秃头: 官网都说了不能实现,你为什么要这样实现呢
@月下大庚角: 公司之前写的功能,现在要优化,之前只需要传值就好,现在想要客户端修改值在页面能够直接看到,我就想到用v-model了,用了一下不可以,所以过来问问解决方案