首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vue中的绑定输入不工作

Vue中的绑定输入不工作
EN

Stack Overflow用户
提问于 2016-12-23 22:31:22
回答 1查看 4.1K关注 0票数 4

当用户开始输入一个输入框时,我想用一个值调用一个函数。我试过两种方法。

第一种方法是尝试使用与模型的双向绑定。但是,在了解了文档之后,我得到了一个错误。

以下是官方文档中的示例:

代码语言:javascript
复制
<div id="app-6">
  <p>{{ message }}</p>
  <input v-model="message">
</div>


var app6 = new Vue({
  el: '#app-6',
  data: {
    message: 'Hello Vue!'
  }
})

下面是我的例子:

代码语言:javascript
复制
<template lang="html">
  <input
    type="text"
    v-model="handle"
  />
</template>


<script>    
  export default {
    data: {
      handle: 'model',
    }
  };
</script>

我将此作为应用程序的一部分编写,因此我选择不重新创建Vue实例,并在其他地方声明了这一点。但是,我得到了以下错误:

属性或方法“句柄”不在实例上定义,而是在呈现过程中引用。确保在data选项中声明反应性数据属性。

我尝试过的第二种方法是通过事件处理程序直接从视图调用函数。我来自于反应,所以这是我最好的方法。但是,函数没有定义为输入值,这意味着它没有获取输入的值。

代码语言:javascript
复制
<template lang="html">
  <input
    type="text"
    v-on:keyup="handleInput()"
  />
</template>

<script>
  export default {
    methods: {
      handleInput(input) {
        // input -> undefined
      },
    },
  };
</script>

我真不明白为什么这两样都不管用。输入侦听器的预期行为不是传递值吗?

我哪里出问题了?

看起来,您可能不得不这样做:当v模型发生变化时,如何触发事件?(vue js)。我不明白的是,当你分配了一个v模型时,你为什么要手动附加一个观察者呢?这不是v型车应该做的吗?

最后起作用的是:

代码语言:javascript
复制
<template lang="html">
  <input
    type="text"
    v-model="searchTerm"
    @keyup.enter="handleInput"
  />
</template>


<script>
  export default {
    data() {
       return { searchTerm: '' }
    },
    methods: {
      handleInput(event) {/* handle input */},
    },
  };
</script>
EN

回答 1

Stack Overflow用户

发布于 2016-12-24 02:47:46

data不应该是第一个示例中的函数吗?我认为这就是vue组件的工作方式。

代码语言:javascript
复制
<script>    
  export default {
    data: function () {
      return { handle: 'model' }
    }
  };
</script>

我想这是在vuecasts.com的某个地方解释的,但我可能错了。:)

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

https://stackoverflow.com/questions/41308520

复制
相关文章

相似问题

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