【发布时间】:2019-10-01 17:12:15
【问题描述】:
我创建了一个完整的 Rails 应用程序,但我添加了 <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> a.k.a. Vue 框架,只是为了处理一些特定的任务。其中一项任务是控制一个范围输入组件,如下所示:
_a_single_layout.html.erb
<div id="app">
<h1>{{progress}}%</h1>
<input type="range" min="0" max="100" v-model="progress">
</div>
application.js
let app = new Vue({
el: "#app",
data: {
progress: 0
}
})
我得到了什么:
问题是如何在此处从rails应用程序中设置当前存储的值,同时将此值绑定到Vue模型。
我尝试过的:
<h1>{{progress = <%= @model.progress %>}}%</h1>
● 这实际上是按我的意愿分配值,但范围输入卡住了。
<input type="range" min="0" max="100" v-bind:progress="<%= @model.progress %>">
● 这会将范围移动到其预期位置,但当我用鼠标移动它时会停止刷新视图。
<input type="range" v-model="progress" v-bind:progress="<%= @model.progress %>">
● 同时设置v-model 和v-bind 会忽略最后一个。
let app = new Vue({
el: "#app",
data: {
progress: <%= @model.progress %>
}
})
● 我也尝试在 javascript 端写入值,但这不是 rails 的有效语法。
● 我正在寻找类似v-on:load="progress = <%= @model.progress %>" 的东西,但似乎 v-on 没有任何加载事件处理程序。
这是我在笔上试过的东西:https://codepen.io/alex3o0/pen/XWrLwwm
【问题讨论】:
标签: ruby-on-rails vue.js erb