2017-12-20 1 views
-4

Angular JS를 배우고 웹 응용 프로그램 프로젝트에서 사용하고 특정 각도 j 질문에 대한 답변을 찾고자합니다. 테크 스택 내가 사용하고있는 MySQL 데이터베이스, 스프링 프레임 워크, HTML/CSS/Bootstrap/JS 등이 있습니다.Angular JS로 응용 프로그램을 구성하는 방법

앱의 목적은 기본적으로 "소셜 미디어 크레이그리스트"입니다. 1 사용자 계정 2. "뉴스 피드"포스트 (하나의 "보기")를 만들 수있는 능력
3. 판매 게시물 (별도의 "보기")을 만들 수있는 능력
4. "인벤토리"보기
5. "위시리스트"에 대한보기

(참고 : 항목 2-5는 내 페이지의 왼쪽에있는 종류의 탐색 모음을 통해 액세스되며 아이디어는 기본 섹션 페이지 sw 클릭 한 탐색 항목을 기준으로 내용을 가려움)

내 웹 서비스에 대한 호출을 만들기 위해 Javscript 코드를 작성하고있었습니다 (드롭 다운을 채우기 위해 정적 컨텐츠를 움켜 잡고 사용자 로그인 정보 등) 및 < 스크립트> 태그가 커지면서이 모든 것이 내 index.html 페이지에 있습니다. Angular JS와 같은 것을 사용하고 조금 다르게 구조화하는 것이 더 효과적 일 수 있다고 생각했습니다. 그리고 코드를 "모듈화"하여 인덱스 페이지에서 커다란 혼란을 겪지 않았습니다. 나는 또한 수동으로 .hide() 및 .show() JS 작업을하고 있었으므로 한 번만 .show()를 활성화하는 대신 AngularJS와 같은 것을 사용하여 내용을 전환하는 것이 더 합리적이라고 생각했습니다. 수동으로 콘텐츠를 전환하려면 필요한만큼 많은 .hide()를 수행해야합니다. 이것은 SPA (단일 페이지 응용 프로그램)처럼 들리는가?

저는 AngularJS StackOverflow 게시물을 조사하고 w3schools 및 기타 유용한 웹 사이트를 살펴 보았지만이를 구조화하는 방법에 문제가있어 코드 노력뿐만 아니라 조직적인 측면에서도 모범 사례를 사용합니다.

1) 나는 앵귤러로 콘텐츠의 숨기기 및 표시를 더 쉽게 만들 수 있습니까?

2) 나는 내 웹 사이트의 각 "기능"자체 컨트롤러가 등 Controller1.js, Controller2.js을 가지고 ..하지만 난

var app = angular.module('myApp', []); ... 

라인이 필요 할 수 있도록하고 싶습니다 각 컨트롤러의 맨 위에 또는 메인 컨트롤러와 같은 것을 한 번만 넣고 메인 컨트롤러에서 각 컨트롤러를 호출해야합니까? 아니면 내가 어떻게해야 할지도 모르는가? 생각 프로세스는 다시 모듈화되었고 모든 JS 논리가 포함 된 하나의 거대한 짐승 파일을 피하는 것이 었습니다.

3) HTML 콘텐츠를 숨기고 표시하기 위해 ng-route 항목 (올바른가?)을 사용해야한다고 가정합니다. (위에 나열된 2-5 항목) 그러나 어떤 파일에서 살아야합니까? 자바 스크립트 컨트롤러 파일? index.html? 다른?

4) 애플리케이션 당 하나의 화면 만 볼 수 있습니다. 즉, 웹 응용 프로그램의 ONE < div>/섹션에 대한 콘텐츠 만 전환하거나 변경할 수 있습니까? 아니면 여러 div가 변경 될 수 있습니까?

5) fyi - 내 현재 파일 구조가 꽤 많이 .. 어떻게해야할까요? 내가 AngularJS와 새로운 오전 자체가 그래서 더 잘 이해하기 위해 노력하고 JS에 양념 때문이

-Java Resources (java code) 
... 
-WebContent 
    -img 
    -META-INF 
    -resources 
    -css (folder) 
    -js (folder with js files - controllers) 
    -WEB-INF 
    -lib (folder) 
    -views (folder) 
    -xx-servlet.xml 
    -web.xml 
    -index.html 
-pom.xml 

내 질문의 많은

는 있습니다. 사전에 모든 도움을 주셔서 감사합니다.

답변

0

우선, 앱당 여러 개의보기를 사용하려면 각도 라우팅 모듈 대신 각도 -ui- 라우터 모듈을 사용해야합니다.

이제 파일 처리를 시작합니다. 그래서, 당신은 당신이 컨트롤러, 설정, 서비스 및 공장에 대한 애플 리케이션을 정의 할 수있는만큼 파일을 만들 수 있습니다. 이 작업에는 세 가지 방법이 있습니다.

첫 번째 파일은 첫 번째 파일에 var app = angular.module("MyApp",[]);을 넣고 첫 번째 파일 아래에있는 다른 파일 각각에 app.controller('ctrl', ControllerFunction)과 같은 컨트롤러와 서비스를 정의합니다. 그러나, 개인적으로 나는이 방법을 당신이 글로벌 변수로서 당신의 앱을 여기에 드러내는 것처럼 사용하는 것을 선호하지 않는다.

두 번째 방법은 첫 번째 파일에 angular.module('MyApp',[])을 사용하여 주 모듈을 만들고 다른 파일에서는 주 모듈을 가져 와서 angular.module('MyApp').controller('ctrl', ControllerFunction)을 사용하여 컨트롤러를 정의하는 것입니다. 이것은 이전보다 더 안전한 방법입니다.

세 번째 방법은 각 파일에 다른 모듈을 만들고 단일 주 모듈의 모든 모듈을 종속 파일로 사용하는 것입니다.

다른 파일

angular.module('Module2',[]).controller('ctrl2',CtrlFun2); 

되고 주 파일 파일

angular.module('Module1',[]).controller('ctrl1',CtrlFun1); 

하나에서, 메인 모듈이

angular.module('MyApp',['Module1','Module2']) 

bootstraped 될 아래와 같이이다 다른 파일에서 서비스를 정의하는 가장 안전한 방법입니다. 필자는 개인적으로 단일 응용 프로그램에서 여러 개의 js 파일을 사용하는 방법에 대해 조언합니다. 여기서는 전역 변수 또는 단일 모듈을 공개하지 않으므로 누구나 쉽게 콘솔을 사용하여 일부 코드를 주입 ​​할 수 없습니다.

관련 문제