Я создаю законченное приложение rails, но я добавляю <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
aka Vue framework только для обработки нескольких специфических задач. Одной из таких задач является управление компонентом ввода диапазона, например:
_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