javascript - Multi-page Angularjs application architecture -


i have project built spring in backend , angularjs on front-end. have navigation bar it's content changes according user's login status. has 4 pages jsp :

  • index page (logged out)
  • about page (logged in/out)
  • contacts page (logged in/out
  • services page (logged in/out
  • products page (logged in)

and additional jsp files :

  • nav.jsp
  • nav-loggedin.jsp
  • nav-loggedout.jsp
  • login-popup.jsp

i made authentication using spring security , have jsp files used jstl tags show or hide buttons according authentication , authorization.

i switch between nav-loggedin , out below :

<c:choose>     <c:when test="${pagecontext.request.userprincipal.authenticated}">          <tiles:insertattribute name="nav-loggedin"/>      </c:when>     <c:otherwise>          <tiles:insertattribute name="nav-loggedout"/>      </c:otherwise> </c:choose> 

and have javascript files each of these pages , nav bar , login popup :

  • index.js
  • about.js
  • contacts.js
  • services.js
  • products.js
  • nav.js
  • login.js

and here layout :

<div ng-app="app">     <div ng-controller="navcontroller">         <tiles:insertattribute name="nav"/>     </div>     <div id="content" ng-controller="appcontroller">         <tiles:insertattribute name="content"/>     </div>     <div ng-controller="logincontroller">         <tiles:insertattribute name="login-popup"/>     </div> </div>  ...   <script type="text/javascript" src='<tiles:insertattribute name="pagescript" ignore="true"/>'></script> <script type="text/javascript" src='<c:url value="/static/main/js/nav.js"/>'></script> <script type="text/javascript" src='<c:url value="/static/main/js/login.js"/>'></script> 

here put content , script pages tiles-definitions file.

my problem code size has got bigger , bigger we've expected happen , want structure code in pure client-side rendered way.

i want restructure client side code in recommended way have different js files each controller , services. know angular more suitable single page apps i'd use angular's features.

what strategies , architectures recommend make project more maintainable , understandable?

for better maintainability , scaling, might want try converting spring jsps restful web service , using angular resources invoke calls api.

for structuring angular app, functional-based divisions (from community-sourced best practices document)

├── app │   ├── app.js │   ├── common │   │   ├── controllers │   │   ├── directives │   │   ├── filters │   │   └── services │   ├── home │   │   ├── controllers │   │   │   ├── firstctrl.js │   │   │   └── secondctrl.js │   │   ├── directives │   │   │   └── directive1.js │   │   ├── filters │   │   │   ├── filter1.js │   │   │   └── filter2.js │   │   └── services │   │       ├── service1.js │   │       └── service2.js │   └── │       ├── controllers │       │   └── thirdctrl.js │       ├── directives │       │   ├── directive2.js │       │   └── directive3.js │       ├── filters │       │   └── filter3.js │       └── services │           └── service3.js ├── partials ├── lib └── test 

Comments

Popular posts from this blog

powershell Start-Process exit code -1073741502 when used with Credential from a windows service environment -

twig - Using Twigbridge in a Laravel 5.1 Package -

c# - LINQ join Entities from HashSet's, Join vs Dictionary vs HashSet performance -