반응형
angularjs의 여러 js 파일에서 단일 컨트롤러를 분할하는 방법
큰 어플리케이션을 silver-light에서 angularjs로 다시 쓰고 있는데, 그 과정에서 컨트롤러 js파일이 각각 2000~3000줄의 코드에 걸쳐 있다는 것을 알게 되었습니다.모든 코드는 범위 변수에 크게 의존합니다.단일 컨트롤러 js 파일을 여러 js 파일로 분할할 기회가 있습니까?어떤 포인터라도 주시면 감사하겠습니다.
여러 컨트롤러를 사용하여 페이지의 작업을 처리합니다.larg 컨트롤러를 사용하는 것이 불가피할 경우 스코프를 다른 메서드로 전달하여 정의를 여러 파일로 분할하고 나머지 메서드를 정의할 수 있습니다.
첫 번째 파일:
app.controller('CtrlA', function($scope){
app.expandControllerA($scope);
});
두 번째 파일에서
app.expandControllerA = function($scope)
{
}
임의의 변수 또는 종속성을 전달하여 ControllerA 함수를 확장할 수 있습니다.
기본 컨트롤러를 생성하고 $controller 서비스를 사용하여 파생 컨트롤러를 생성할 수도 있습니다.
예를 들어 다음과 같습니다.
function BaseCtrl($scope, options) {
var vm = this;
// code
return vm;
}
function ChildCtrl($controller, $scope) {
var vm = $controller('BaseCtrl', {
$scope: $scope,
options: { }
});
// extend view model
vm.name = '';
return vm
}
컨트롤러를 다른 파일로 분할하는 방법도 있습니다.이 ng-conf 비디오를 확인해 주세요.
각진 모듈에서 App.factory 또는 app.service를 사용할 수 있습니다.이것은 스니펫에 데이터를 삽입하는 것과 같습니다.이를 통해 메인 컨트롤러 외부에 데이터 부분을 할당하고 컨트롤러에 할당된 변수를 상속할 수 있습니다.
app.factory('name of the factory',function(){
return (data)
)
app.controller('$scope','name of the factory', function(scope, name of the factopry
$scope.new = data;
))
언급URL : https://stackoverflow.com/questions/25819661/how-to-split-single-controller-in-multiple-js-files-in-angularjs
반응형
'programing' 카테고리의 다른 글
cURL이 HTTP Response Body(JSON; 응답 본문)만 출력하고 다른 헤더는 출력하지 않도록 하는 방법 (0) | 2023.02.08 |
---|---|
Json null 대신 빈 문자열을 변환합니다. (0) | 2023.02.08 |
개체를 병합하는 방법 (0) | 2023.02.08 |
ng-show="true"이지만 아직 class="ng-hide"가 있습니다. (0) | 2023.02.08 |
Jackson이 값을 문자열로 읽음 (0) | 2023.02.08 |