在上一个使用Sails版本(0.12)的项目中,我划分了layout.ejs文件,以独立于主体管理顶部栏和页脚。 看起来像
<%- partial('./partials/topnav.ejs') %>
<!-- begin::Body -->
<%- body %>
<!-- end:: Body -->
<%- partial('./partials/footer.ejs') %>
我正在使用AngularJS。顶杆包裹在控制器中,车身包裹在另一个控制器中。基本上在局部代码中,代码看起来像
<div ng-controller="topnavCtrl" ng-cloak>
//My topnav code
</div>
...
<div ng-controller="aPageCtrl" ng-cloak>
//My page code
</div>
我以为Sails js 1.1可以做类似的事情,从Web应用程序的选项1开始,但是因为它不是AngularJS,而是Vue.js和parasails,所以我不知道如何解决我得到的错误:
Whoops发生意外的客户端错误。无法加载页面 脚本(`topnav),因为已经在此页面上加载了页面脚本 页。请检查您浏览器的JavaScript控制台以获取更多信息 细节。此消息将不会在生产中显示。如果你是 不确定,请寻求帮助。 2019年3月4日星期一16:32:05 GMT-0500(EST)
浏览器控制台显示:
[错误]错误:由于页面脚本而无法加载页面脚本(`topnav) 已经在此页面上加载。 registerPage (parasails.js:710:156)全局代码(topnav.page.js:1)
我的topnav部分有
<div id="topnav" v-cloak>
//My topnav code
</div>
如果我从“正文”页面中删除了<div id="mypage" v-cloak>
,则错误消失了。
显然,这与Parasails有关,但是有没有办法在Sails v1中为页面使用两个“控制器”? (我称它们为控制器,因为在使用AngularJS的Sails 0.12中它们被称为控制器,现在我根本不知道它们是什么!)
答案 0 :(得分:0)
您应该能够在Sails V1中做到这一点。
最初使用的内容仍然可以使用:
<%- partial('./partials/topnav.ejs') %>
<!-- begin::Body -->
<%- body %>
<!-- end:: Body -->
<%- partial('./partials/footer.ejs') %>
尽管建议您将文件命名为footer.partial.ejs
您的局部不需要包装在控制器中,您可以根据需要随意基于类或id对其进行调用。
在您的部分.ejs
文件中,您也不想在其上带有“ v-clock”,因为该文件应该已经存在于您的单独.ejs
文件中。
所以:
<div id="topNav">
//top nav code
</div>
<div id="homepage" v-clock>
<%- partial('../../partials/topnav.partial.ejs') %>
//homepage code
</div>
请注意,由于您将部分内容注入布局中,因此无需在每个页面上添加它。我只是想展示一个明确的例子。