【发布时间】:2016-05-17 02:45:47
【问题描述】:
我正在使用 Laravel Spark 开发一个 Laravel 5.2 项目(在撰写本文时仍处于测试阶段),并尝试使用默认布局和视图添加一些 Vuejs 功能。
我的第一次尝试失败了,因为我只是尝试在主视图中创建一个新的div 并将我的 Vue 代码绑定到该div。这是div:
<div id="my-stuff">
<p>@{{ test }}</p>
</div>
这里是对应的JS代码:
new Vue( {
el: '#my-stuff',
data: {
test: 'This is a test'
}
});
我希望看到的是“这是一个测试”字样出现在主屏幕上的那个 div 中,但当然什么也没有出现,因为如前所述,Vue 在 body 标记之后立即绑定到 div(好吧,我假设这就是原因)。
我认为我的问题的解决方案是使用 Vue 组件,它们本身看起来相当简单,但我不知道将我的代码放在哪里,如何将我的代码与 Gulp 进程集成,我需要修改哪个 Spark 文件(如果有的话?)注册我的组件以及如何确保在创建 Vue 实例之前注册我的组件。
任何帮助将不胜感激。
附录 1
要重现与我使用的完全相同的设置,需要安装 Laravel 5.2 的新副本,然后使用 spark 安装程序添加 spark 内容,然后添加包含以下代码的 app.js public 文件夹,在 home 视图中的任意位置添加相应的 div,并在导入 gulp 生成的主 javascript 文件的脚本标签正下方添加一个脚本标签以包含 app.js。
虽然在小提琴中重现整个设置是不切实际的,但我认为以下小提琴说明了问题的本质:
https://jsfiddle.net/5oLLte2e/
从记忆中你在 AngularJS 中也有同样的限制。对我来说这是完全合理的为什么这不起作用并且 Vuejs 中的解决方案最有可能使用组件,但是在这种情况下的挑战是知道如何捆绑组件以及将其保存在哪里以便将其与 gulp 集成配置,或者如果这甚至是必要的。
【问题讨论】:
-
Vue 应该直接绑定到您通过
el的值指示的 div。你能在小提琴中重现吗? -
你在哪里包含你的 vue 脚本?它必须进入身体,而不是进入头部。
-
@DavidK.Hess 我创建了一个小提琴来说明问题的本质,并在问题中添加了指向小提琴的链接。
-
@gurghet 我将 app.js 包含在正文中,距离末尾几行,就在包含 gulp 生成的主要 app.js 之后。