2013-09-03 6 views
1

Для моей локальной разработки angularJS я использую nodeJS. Если я разверну свой проект angularJS на сервере tomcat, он в основном работает, НО я использую разные страницы и разные контроллеры, и каждый раз, когда я нажимаю на другую страницу, кажется, что все приложение снова перезапускается, потому что данные в rootcope теряется, и он запускает части программы, которые должны запускаться только при запуске приложения.angularJS проблемы с tomcat - приложение перезапускается на странице/сменой контроллера

Может кто-нибудь сказать мне, что здесь происходит не так? Почему мое приложение не работает на 100% корректно на tomcat?

Я использую 7.0.34

кота

ответ

1

Я не знаком с Tomcat, но у нас была такая же проблема с Apache. Поскольку Angular необходимо выполнить маршрутизацию вашего приложения, вы должны сказать своему веб-серверу всегда предоставлять свою корневую HTML-страницу, например. index.html.

После этого ваше приложение должно работать нормально.

+0

Я использовал home вместо home ... теперь он работает ... спасибо за подсказку – Thomas

1

Я предполагаю, что когда вы говорите different page, вы буквально означаете другую страницу html (url). Это ожидаемое поведение. AngularJS - это приложение для одиночной страницы (SPA). Как и любой другой SPA, он повторно инициализируется, когда вы выполняете полную загрузку страницы \ перезагружаете или переходите на другую страницу.

Это связано с отсутствием HTTP-статуса без гражданства. Каждая страница представляет собой независимый запрос, который запускает жизненный цикл клиентской страницы.

Для правильного использования AngularJS в качестве SPA вы должны иметь главную страницу. Содержимое этих страниц получает alter \ appred by child views \ partials (снова страницы). AngularJS также захватывает URL-адреса URL-адреса браузера, чтобы это не приводило к полной перезагрузке страницы при изменении URL-адреса.

Посмотрите на примеры приложений, созданные с помощью AngularJS, чтобы понять, как это работает.