Vue.js VueJs+;元素ui:如何从输入获取本机事件

Vue.js VueJs+;元素ui:如何从输入获取本机事件,vue.js,user-input,element-ui,Vue.js,User Input,Element Ui,我试图从el-input标记的@input.native属性中获取事件。 以下是模板代码: <el-input :value="filter.name" @input.native="updateFilter"></el-input> 我的过滤器。名称已用值“aaa”初始化,然后我在字段中键入“b”。出于某种原因,日志上的输出是“aaa”,但我需要“aaab”值 另外,我不能使用@input,因为它只返回值,我还需要其他属性 是否仍有获取有效本机输入事件的方法 @更新:

我试图从
el-input
标记的@input.native属性中获取事件。 以下是模板代码:

<el-input :value="filter.name" @input.native="updateFilter"></el-input>
我的过滤器。名称已用值“aaa”初始化,然后我在字段中键入“b”。出于某种原因,日志上的输出是“aaa”,但我需要“aaab”值

另外,我不能使用@input,因为它只返回值,我还需要其他属性

是否仍有获取有效本机输入事件的方法


@更新:我正在使用Vuex,因此v-model不是一个选项

我相信你做的一切都是对的。但是,除非绑定模型(使用
v-model=“filter.name”
)而不是执行
:value
,否则无法更新该值

以下是我所做的:

HTML

剧本

导出默认值{
名称:“CustomizestCompaign”,
数据:函数(){
返回{
someValue:“测试”
}
},
方法:{
someFunction:function(val='1'){
log('Event Value',val.target.Value',some Value:',this.blankValue);
}
}
}
输出 这是我在控制台上输入时得到的输出

Event Value teste   some value:  test 
Event Value tester   some value:  test 
Event Value testere   some value:  test 
Event Value testerer   some value:  test 
Event Value testerere   some value:  test 

所以你的代码一定在工作

那怎么了?

问题是您绑定的是
,而不是
模型

当我将
:value=“someValue”
更改为
v-model=“someValue”
时,输出如下:

v型输出
总结 始终使用
v-model
(不使用
:value
)绑定值。这就是Vue实现反应性的方式


希望这有帮助

您可以使用计算方法。取一个临时变量,将该变量作为v模型添加到输入中。每当值发生变化时,将该变量指定给vuex存储变量(除了字符串串联外,什么都没有)。您可以在计算机中使用setter和getter

下面的链接可能会有所帮助


让我们用Vuex制作v-model,它非常简单:

导出默认值:{
...
计算:{
过滤器:{
get(){返回这个。$store.state.filter;};
set(val){this.$store.commit(“setFilter”,val);
}
}
...
}

然后将v-model添加到过滤器上会很神奇。

此链接通常可能会有帮助。您可以使用v-model,但如果您想传递事件,则上面的链接可能会有帮助。我不想添加太多细节,但我在这里使用Vuex,因此v-model不是一个选项。您是否浏览了我提到的上面的链接,该链接告诉您如何使用n来侦听事件Tive input?我尝试了链接,但它根本不起作用,或者我应该说,它只返回值而不是事件。我很确定您的解决方案肯定与其他UI框架一起工作,但这个愚蠢的元素UI是另一回事。我在这里使用Vuex,因此与
v-model
绑定不是一个选项为什么不可以?您可以这样做
data:function(){return{someValue:this.$store.getters.someValue}}
在组件中,您需要该值。
Event Value teste   some value:  test 
Event Value tester   some value:  test 
Event Value testere   some value:  test 
Event Value testerer   some value:  test 
Event Value testerere   some value:  test 
Event Value teste   some value:  teste 
Event Value tester   some value:  tester 
Event Value testere   some value:  testere 
Event Value testeree   some value:  testeree 
Event Value testereer   some value:  testereer 
Event Value testereere   some value:  testereere