任何人都可以分享一些有关如何使用 SennaJS 在 Liferay 7 中创建单页应用程序 (SPA) 的详细信息。我找不到任何关于如何在 Liferay 7 中创建 SPA 的文档。
问问题
1037 次
3 回答
2
它默认出现,除非您取消设置以下属性:
javascript.single.page.application.enabled=true
顺便说一句,这在开发实例中相当烦人,因为在第一次访问时加载页面需要一段时间,有时您甚至需要重新加载页面。另外,请注意,在某些特殊情况下,某些应用程序可能会中断,这通常是由于代码需要重新加载页面才能正常运行。
于 2016-10-24T21:46:50.393 回答
1
您甚至可以使用以下代码在 6.2 中创建它。
// initializing senna
var app = new senna.App();
// Set links selector for navigations
app.setLinkSelector(".senna-link");
// set basic path of liferay site
app.setBasePath('/web/spa-demo/');
// Id of DOM element which will be replaced from
// next page request
// using content div - default in liferay theme
app.addSurfaces('content');
// define routes for all the navigation links
// route link = Base path + page link
app.addRoutes([
new senna.Route('home', senna.HtmlScreen),
new senna.Route('second', senna.HtmlScreen),
new senna.Route('third', senna.HtmlScreen),
]);
您需要注意的事情,如果是SPA,则需要首先绑定所有事件,即委托,因为不会刷新页面。
即像 document.getReady 这样的东西只会被调用一次。
于 2017-01-19T18:25:30.147 回答
0
无论您要使用 Liferay SDK/Workspace 或任何兼容的 Liferay 插件创建和部署什么 portlet,默认情况下它都是 SPA。无需在其上进行任何编码。
于 2016-10-26T05:42:09.437 回答