2016-08-16 4 views
1

Может ли кто-нибудь поделиться подробной информацией о том, как создать приложение одиночной страницы (SPA) в Liferay 7, используя SennaJS. я could't нашел какую-либо документацию о том, как создать SPA в Liferay 7.Как создать одностраничное приложение в liferay 7?

+0

https://dev.liferay.com/develop/tutorials/-/knowledge_base/7-0/automatic-single-page-applications – Issamovitch

ответ

2

Он поставляется по умолчанию, за исключением, если вы сбросить следующее свойство:

javascript.single.page.application.enabled = истина

Кстати, это довольно неприятно для экземпляров dev, поскольку для загрузки страниц в первый доступ требуется некоторое время, иногда вам даже нужно перезагружать страницу. Кроме того, имейте в виду, что в некоторых случаях некоторые приложения могут сломаться, как правило, из-за кода, который считает, что перезагрузка страницы функционирует должным образом.

0

Независимо от того, какой портлет вы собираетесь создавать и развертывать с помощью Liferay SDK/Workspace ИЛИ любого совместимого плагина liferay, по умолчанию это будет SPA. Не нужно делать какие-либо кодировки поверх него.

0

вы можете создать его в 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, будут называться только один раз.