【发布时间】:2019-05-05 08:34:47
【问题描述】:
我正在尝试将 bootstrap-select 插件(可在此处找到 https://developer.snapappointments.com/bootstrap-select/)实现到使用 Vue.js 作为 javascript 框架的 ruby on rails 应用程序中。
目标是在一个选择中您可以选择一个类别,在另一个选择中您可以选择该类别的所有可用教师。 为此,我使用 axios 和 vue 向我自己的 api 发出请求,并使用它来填充第二个选择,它适用于简单的选择字段,但是我希望显示 bootstrap-select,我知道插件有一个函数“selectpicker('refresh')”使选项重新加载成为可能,但我的浏览器控制台声称 selectpicker 不是一个函数,当我在我的 vue 实例上调用它时,我可以在浏览器控制台上手动运行它并且它按预期工作
我的代码:
js:
Vue.use(VueAxios, axios)
document.addEventListener('DOMContentLoaded', () => {
if(document.getElementById('enrollment_form')) {
var app = new Vue({
el: '#enrollment_form',
data: {
CategoryValue: null,
TeacherValue: null,
teachers: null,
},
methods: {
fetchTeachers() {
this.axios.get('/api/teachers/' + this.licenceTypeValue).then(response => (this.teachers = response.data))
$('.selectpicker').selectpicker('refresh');
}
},
})
}})
查看:
<div class="row">
<div class="col-lg-5">
<div class="form-group">
<%= f.label :category %>*<br />
<%= f.collection_select(
:category,
Category.all,
:id,
:catgegory_name,
{include_blank: true},
{
class: 'form-control selectpicker',
"v-model" => "CategoryValue",
"v-on:change" => "fetchTeachers"
}
)%>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-5">
<div class="form-group">
<label for="teacher_id">Teacher</label>
<div>
<select id="teachers-list" class='form-control selectpicker' v-model="TeacherValue" data-fieldname = "TeacherValue">
<option label="" ></option>
<option v-for="teacher in teachers" :value="teacher.id"> {{teacher.name}} </option>
</select>
</div>
</div>
</div>
</div>
<div>
<%= f.hidden_field :teacher_id, {"v-model" => "TeacherValue"} %>
</div>
最后是我的 application.js
//= require rails-ujs
//= require activestorage
//= require jquery
//= require jquery_ujs
//= require popper
//= require bootstrap
//= require bootstrap-select
如果有人可以提供帮助,我将不胜感激,因为我根本不知道该怎么做
【问题讨论】:
-
我正在研究如何同时使用 Vue 和 jQuery,因为您的问题让我很好奇这是否可能。看看这个:vuejsdevelopers.com/2017/05/20/vue-js-safely-jquery-plugin
标签: javascript vue.js bootstrap-selectpicker