【发布时间】:2018-12-29 07:24:36
【问题描述】:
我有一个带有前端 Vue js 和后端 Laravel 的 Web 应用程序。我必须显示一个用于选择时区的下拉菜单,该时区将从刀片文件中的 Laravel 后端填充。我的 vue 组件中有一个作用域插槽,它可以绑定该下拉列表,提供反应属性selectedId,我可以将其绑定到选择元素为v-model。这里的问题是选择元素设置为从反应属性selectedId 传递的值,但是在更改选择选项时,新值不会传递回该反应属性selectedId。所以我认为我无法以两种方式绑定反应属性selectedId。我怎样才能解决这个问题?
以下是我的代码
NewProject.vue
<template>
<div>
<div class="row">
<div class="col-md-12">
<fieldset>
<div class="form-group">
<label class="col-sm-2 control-label">Select Project Time Zone</label>
<slot name="timezone" :selectedId="selectedId"></slot>
{{selectedId}}
</div>
</fieldset>
<button v-on:click="getSelectedTimeZone">Click Me</button>
</div>
</div>
</div>
</template>
<script>
export default{
data(){
return {
selectedId: 'Pacific/Fiji'
}
},
methods: {
getSelectedTimeZone: function (event) {
alert(this.selectedId);
}
},
}
</script>
<style scoped>
</style>
newProject.js
require('./bootstrap');
import NewProject from "../../../assets/js/components/Template/NewProject.vue";
import GlobalMixin from "../../../assets/js/mixins/GlobalMixin";
const newProject=new Vue({
el:'#newProject',
mixins:[
GlobalMixin,
],
components:{
'new-project':NewProject,
},
methods:{
},
mounted(){
},
});
new_project.blade.php
@extends('layouts.headless')
@section('content')
<new-project>
<template slot="timezone" slot-scope='data'>
<select v-model="data.selectedId">
@foreach ($timezone_list['Pacific'] as $key=>$value)
<option value="{{$key}}">{!! $value !!}</option>
@endforeach
</select>
</template>
</new-project>
@stop
【问题讨论】:
标签: vue.js