【发布时间】:2018-03-17 08:43:02
【问题描述】:
目前我将 Laravel 5.2 与 Elixir 5 和 Vue 2.0 一起使用。
我不知道如何使用 v-if 之类的东西从元素视图访问和导入组件的数据。
这是我的设置:
资源\视图\vuetest.blade.php
<div id="app">
<modal v-if="showModal"></modal>
<button>Show Modal</button>
</div>
资源\资产\vuejs\app.js
import Vue from 'vue';
import Modal from './components/modals/show-modal.vue';
Vue.component('modal', Modal);
if (document.getElementById("app")){
var app = new Vue({
el: '#app',
data: {
},
methods: {
},
computed: {
},
components: {
'modal': Modal
}
});
window.vue = app;
}
resources\assets\vuejs\components\modals\show-modal.vue
<template>
<div id="myModal" class="modal fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Modal Header</h4>
</div>
<div class="modal-body">
<p>Some text in the modal.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</template>
<script>
export default {
data() {
return {
showModal: false
}
},
components: {
},
}
</script>
现在,如果我在没有 v-if 的情况下使用它,那么它可以正常工作并正确拉入模板。
但是,如果我使用示例中的内容,则会出现错误:
app.js:967 [Vue warn]: Property or method "showModal" is not defined on the instance but referenced during render. Make sure to declare reactive data properties in the data option.
(found in <Root>)
如果我在主 app.js 中添加数据,它可以访问它,但不能在导入的子组件中访问。我宁愿不要让主 app.js 变得凌乱,最好使用导入并将组件保存在有组织的子文件夹中。如何正确访问这些子组件数据?
【问题讨论】:
标签: php laravel laravel-5 vue.js vuejs2