0

任何人都可以分享一些有关如何使用 SennaJS 在 Liferay 7 中创建单页应用程序 (SPA) 的详细信息。我找不到任何关于如何在 Liferay 7 中创建 SPA 的文档。

4

3 回答 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 回答