首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vue v-model绑定问题

Vue v-model绑定问题
EN

Stack Overflow用户
提问于 2018-01-22 18:45:31
回答 3查看 302关注 0票数 0

嗨,我已经在这个问题上讨论了几天了。我正在尝试使用Vue的v-model将数据绑定到输入文本。我的Vue安装在我的项目中,并且在header中添加了cdn链接。文本框只会在重新加载时显示瞬间的数据,然后消失。这可能是安装问题吗?我在控制台上的Laravel项目中直接安装了npm vue。

我的HTML:

代码语言:javascript
复制
<div id='postEdit'>

  <input type="text" name="title" id="title" class="form-control" v-model="post.body">

</div>

我的Vue:

代码语言:javascript
复制
var edit = new Vue({
  el: '#postEdit',
  data: {
    post: {
      body: 'this is body'
    }
  },

});

我在控制台运行edit.post时的输出:

代码语言:javascript
复制
Object { body: Getter & Setter, … }
EN

回答 3

Stack Overflow用户

发布于 2018-01-22 18:49:30

您的数据属性错误,它需要是返回对象的函数。如下所示:

代码语言:javascript
复制
data () {
  return {
    post: {
      body: 'this is body'
    }
  }
}
票数 0
EN

Stack Overflow用户

发布于 2018-01-22 19:29:53

Vue.js documentation说,在data选项中,您必须使用普通对象

getter Vue将以递归方式将其属性转换为

/getter,以使其成为“响应式”。对象必须是纯:本机对象,如浏览器API对象和原型属性被忽略。经验法则是,数据应该只是数据-不建议观察具有自己的有状态行为的对象。

对于您的示例,我将使用一个计算属性来返回postbody属性。

我的意思是像this JSFiddle这样的东西。

票数 0
EN

Stack Overflow用户

发布于 2018-01-22 19:54:53

只需将您的数据作为函数并再次检查即可。proof

代码语言:javascript
复制
<div id='postEdit'>
  <input type="text" name="title" id="title" class="form-control" v-model="post.body">
</div>

var edit = new Vue({
el: '#postEdit',
data: function() { 
  return {
      post: {
      body: 'this is bodygfdgfd'
      }
   }
 }
});

哦还有这个控制台的东西..。试试edit.post.body

你会看到{getter,setter},因为Vue使用Object.defineProperty方法“编译”数据对象来观察数据的变化。在幕后,getters运行得很好,相信我;)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48379746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档