Vue.js v-model 数据对象

Posted

技术标签:

【中文标题】Vue.js v-model 数据对象【英文标题】:Vue.js v-model data object 【发布时间】:2016-03-11 09:18:28 【问题描述】:

所以我刚刚开始使用 Vue.js。但是我在一些简单的任务上遇到了一些问题,比如向数组中添加新的“新闻项目”。包括 JSFiddle 所以如果有人能告诉我我做错了什么..

http://jsfiddle.net/pL5taqp6/

html

<div id="app">
<input type="text" v-model="news.title">
<input type="text" v-model="news.url">  
<ul>
  <li v-for="n in news">
     n.title  -  n.url 
  </li>
</ul>
</div>

JS

new Vue(
  el: '#app',
  data: 
    news: [ 
       title: 'Test Title', url: '/test-title'
    ]
  
);

【问题讨论】:

【参考方案1】:

您需要一个单独的方法来将项目添加到news 数组。我添加了此类功能的超级简单变体。

http://jsfiddle.net/00953sor/

HTML:

<div id="app">

  <form @submit="addItem">
    <input type="text" v-model="itemTitle">
    <input type="text" v-model="itemUrl">
    <button type="submit">Add</button>
  </form>

  <ul>
    <li v-for="n in news">
       n.title  -  n.url 
    </li>
  </ul>

  <pre> $data | json </pre>

</div>

javascript

new Vue(
  el: '#app',
  data: 
    news: [
      title: 'Test Title',
      url: '/test-title'
    ]
  ,
  methods: 
    addItem: function(e) 
      e.preventDefault(); // prevent page refresh
      this.news.push(
        "title": this.itemTitle,
        "url": this.itemUrl
      );
      this.itemTitle = this.itemUrl = '';
    
  
);

【讨论】:

如果您在表单标签上使用@submit.prevent,则不需要e.preventDefault(); 方法中的e.preventDefault(); 行。

以上是关于Vue.js v-model 数据对象的主要内容,如果未能解决你的问题,请参考以下文章

v-mode踩坑心得

v-mode的基本使用,自定义组件传参

Vue.js v-model 数据对象

Vue JS通过v-model上的文件上传器设置图像应用空对象

Vue.js 如何在 v-model 输入的数组中定位具有未知名称的对象

对vue的v-mode之使用