1

对于我本地的 angularJS 开发,我使用的是 nodeJS。如果我在 tomcat 服务器上部署我的 angularJS 项目,它基本上可以工作,但是,我使用不同的页面和不同的控制器,每次单击另一个页面时,似乎整个应用程序都重新启动,因为rootscope 会丢失,它会启动仅应在应用程序启动时启动的程序部分。

谁能告诉我这里出了什么问题?为什么我的应用程序不能 100% 正确运行在 tomcat 上?

我正在使用 tomcat 7.0.34

4

2 回答 2

1

我不熟悉 Tomcat,但我们在 Apache 上遇到过同样的问题。由于 Angular 需要对您的应用程序本身进行路由,因此您必须告诉您的 Web 服务器始终提供您的根 HTML 页面,例如index.html.

完成此操作后,您的应用程序应该可以正常工作。

于 2013-09-03T11:43:17.453 回答
1

我假设当您说different page您的字面意思是不同的 html 页面(url)时。这是预期的行为。AngularJS 是一个单页应用程序 (SPA) 框架。与任何其他 SPA 一样,当您执行完整页面加载\重新加载或导航到另一个页面时,它会重新初始化。

这是由于 HTTP 的无状态特性。每个页面都是一个独立的请求,它启动了客户端页面的生命周期。

要正确使用 AngularJS 作为 SPA,您需要有一个主页。此页面的内容由子视图\部分(再次页面)更改\附加。AngularJS 还劫持浏览器 url chnanges,因此这不会导致整个页面在 url 更改时重新加载。

查看一些使用 AngularJS 创建的示例应用程序以了解其工作原理。

于 2013-09-03T11:43:42.117 回答