如果页面包含b:carousel,SPA方法无效

时间:2016-08-24 16:19:46

标签: jsf carousel single-page-application bootsfaces

环境:

我正在使用JSF2.2,Bootsfaces 0.9.1,Primefaces 6.0,JEE7和Hibernate 5.2与MySQL 5.7 DB一起编写SPA。

我有什么:

我的SPA在上半部分有一个导航栏,并且根据左侧导航栏的选择有一个特定的菜单。在右侧和导航栏下方,我的主要内容页面为"。与此图片类似但区别在于我的菜单是动态的

enter image description here

使用AJAX更新内容页面。

只要我的内容页面不包含b:carousel ,导航周围的所有内容都按照我的预期工作!

我尝试做的事情:

正如我上面提到的,我的SPA和所有导航都正常工作,除非我将b:carousel添加到内容页面。

请考虑以下示例:

我有2个内容页面。第1页包含一个带有一些文本的标签。第2页包含一个带有一些图像的b:carousel。第1页是欢迎页面。 一旦我从第1页导航到第2页,就没有任何反应。我需要完全刷新整个页面才能看到第2页,甚至每次都无法正常工作。

我的主要问题:

如果有一个b:carousel,是否有使用ajax更新内容页面的技巧? 我做错了什么?

修改

我在github上创建了一个示例项目,以便您能够看到我的意思。我使用的是Java 1.8,Tomcat 8.0.36和Netbeans IDE,但该项目是一个应该在eclipse中工作的Maven项目。

项目:https://github.com/mweber96/stackoverflow39128418

SPA方法我部分使用:http://www.beyondjava.net/blog/single-page-applications-with-bootsfaces/

此问题与我之前提出的问题有关:Use ui:repeat with b:carousel?

1 个答案:

答案 0 :(得分:3)

这是两个错误的组合:

  • 您在GitHub上的示例使用的是PrimeFaces,但它似乎没有使用PrimeFaces组件。结果是PrimeFaces添加了一些花哨的JavaScript来动态加载缺少的CSS文件(这很棒!),但它没有添加PrimeFaces核心库,因此Mojarra遇到了它默默隐藏的异常。您可以通过向页面添加(可能隐藏的)PrimeFaces组件来修复此问题,方法是直接包含PrimeFaces core.js文件(虽然我不建议这样做),或者 - 当然 - 如果你真的不喜欢删除PrimeFaces依赖项需要它。

    • BootsFaces依赖于HTML属性来初始化轮播。令我惊讶的是,这甚至可以起作用,至少是部分的。但是,要自动开始滑动,您仍需要手动初始化JavaScript小部件。在你的情况下,那是 $( “#myCarousel”)转盘()。
顺便说一句,我建议你在我们的bug跟踪器上打开一个bug来修复后一点(https://github.com/TheCoder4eu/BootsFaces-OSP/issues)。提前谢谢!