我的想法是,这是不可能的,或者我缺少一个额外的步骤。无论哪种方式,我都被困住了,无法弄清楚这一点。
使用内联模板的原因是能够使用Laravel Blade语法并结合Vue Js的功能。似乎两者中最好的。结构的基本细分来解释问题:
<nav-container inline-template >
//content
//import this component into the party!
<nav-topics></nav-topics>
</nav-container>
<nav-topics inline-template>
//content
</nav-topics>
我收到控制台错误:
无法安装组件:模板或渲染函数未定义。
我知道组件“nav-topics”正在运行而不是内联模板,因为如果我将其更改为非内联的普通组件,那么内容将被引入。我将其设置为“ nav-container“to”导入..来自“和 设置组件名称,正如我所说,我可以让它工作,而不是一个内联版本!
当然,您不能只将父级设置为“内联模板”组件,而不是他们的孩子吗?
如果我在“nav-container”文件中使用Blade文件导入,它会起作用,但这不能正常工作。我无法发出事件或组件之间的通常通信。
@include('nav/_nav_topics')
答案 0 :(得分:2)
它们嵌套很好,只要外层人知道内部的那个,并且你有一些与每个模板相关联的模板(内联或组件规范)。
内联模板只是覆盖了提供给它的一个实例的spec模板。如果需要,您可以在多个位置为同一组件使用不同的内联模板。
Vue.component('dooDad', {});
Vue.component('thingAmajig', {template: '<div>Fooey</div>'});
new Vue({
el: '#app'
});
<script src="//cdnjs.cloudflare.com/ajax/libs/vue/2.4.2/vue.min.js"></script>
<div id="app">
<doo-dad inline-template>
<div>
There's a thing-amajig here.
<thing-amajig inline-template>
<div>That's me</div>
</thing-amajig>
<thing-amajig></thing-amajig>
</div>
</doo-dad>
</div>