我正在将 Vue.js 添加到我的 Rails 6 应用程序中。该项目正在使用 turbolinks,因此“vue-turbolinks”是通过 yarn 安装的,我的 Vue 配置如下所示:
import TurbolinksAdapter from 'vue-turbolinks';
import Vue from 'vue/dist/vue.esm';
Vue.use(TurbolinksAdapter);
document.addEventListener('turbolinks:load', () => {
const app = new Vue({
el: '[data-behavior="vue"]',
data() {
return {
message: 'This string will update with input from text field',
};
},
methods: {
updateMessage(event) {
this.message = event.target.value;
},
}
});
});
我的rails模板(.html.erb)包含一个带有Vuejs“v-model”属性的文本字段
<div data-behavior="vue">
{{ message }}
<%= f.text_field :title, "v-model": "updateMessage" %>
</div>
Vue 似乎按预期工作,除了“v-model”输出文字函数而不是调用函数(updateMessage)。结果,文本字段呈现的值为
"function () { [native code] }"
但是,将“v-model”更改为“v-on:input”可以满足我的期望:更新输入消息。
任何人都可以阐明这里发生的事情或为我指出正确的方向来解决此问题。提前感谢您的时间。