对于我的本地angularJS开发,我正在使用nodeJS。如果我在tomcat服务器上部署我的angularJS项目,它基本上工作但是我使用不同的页面和不同的控制器,每次我点击其他页面,似乎整个应用程序再次重新启动,因为在rootscope丢失,它启动程序部分,应该只在应用程序启动时启动。
有谁能告诉我这里出了什么问题? 为什么我的应用程序在tomcat上运行时没有100%正确?
我正在使用tomcat 7.0.34
答案 0 :(得分:1)
我不熟悉Tomcat,但我们遇到了与Apache相同的问题。由于Angular需要对应用程序本身进行路由,因此您必须告诉您的Web服务器始终提供您的根HTML页面,例如index.html
。
完成后,您的应用应该可以正常工作。
答案 1 :(得分:1)
我假设当你说different page
时,你的字面意思是不同的html页面(网址)。这就是预期的行为。 AngularJS是一个单页面应用程序(SPA)框架。与任何其他SPA一样,当您执行整页加载\重新加载或导航到另一个页面时,它会重新初始化。
这是由于HTTP的无状态特性。每个页面都是一个独立的请求,它启动客户端页面生命周期。
要将AngularJS正确用作SPA,您需要有一个主页面。这些页面的内容由子视图\部分(再次页面)改变\附加。 AngularJS还劫持了浏览器URL chnanges,因此这不会导致URL更改时的整页重新加载。
查看使用AngularJS创建的一些示例应用程序,以了解它的工作原理。