2014-08-28 4 views
2

AngularJS의 기존 프로젝트와 통합해야하는 디자이너가 저에게 넘겨주는 페이지가 있습니다.

내가받은 페이지는 jquery를 많이 사용합니다. 문제의 원인 중 하나는 jquery의 $('document').ready() 함수입니다.

각도 프로젝트에서는 페이지가 한 번로드되기 때문에 대부분의 페이지에서 대부분의 페이지가 작동하지 않습니다. 페이지가 변경 될 때마다이 함수 내부에는 작동하지 않는 몇 가지 코드가 있습니다.

setTimeout(function(){ 
$scope.$apply(function() { 
    var _wht=($(window).height()); 
    var _wwt=($(window).width()); 
    _wht=($(window).height()); 
    _wwt=($(window).width()); 
    if(_wht > 450){ 
     var mcht = _wht - ($('header').height()+ $('footer').height()+50); 
     $('.login-page').css('height',mcht+'px'); 
     $('.login-page').css('padding-top',((mcht - 158)/2) +'px'); 

    } 



    }); 
}); 

이 아주 잘 작동합니다

그래서 내 프로젝트 중 컨트롤러는 document.ready에서의 작동이 같은 컨트롤러에 던지는하고 코드를 가질 예정이다.

그러나 저는 이것이 angularJS의 관심사 분리 철학에 대항한다고 생각합니다. 컨트롤러는 비즈니스 논리 만 가지고있는 곳입니다.

이 코드 조각을 던지기 가장 좋은 곳은 어디입니까?

답변

2

AngularJS은 견고한 아키텍쳐를 위해 만들어 졌기 때문에 지시문과 다른 구성 요소의 관점에서 많은 모듈을 보았습니다. JQuery을 끼워 넣으면 핵심 디자인에서 벗어나고 코드베이스를 유지하면서 혼란에 빠지게 될 것입니다. 당신이 AngularJS와 응용 프로그램을 작성하는 경우

jQuery를이 버팀목이다.

AngularJS 앱을 시작하려면 ng-boilerplate을 잘 살펴보십시오. 그런 다음 ui-bootstrap’s directives을 살펴보십시오. 그것들은 코드의 일부로 "jQuery 일들"을 어떻게 수행 할 수 있는지, 그리고 유지하기 쉽고, 테스트가 쉽고, 일반적으로 작업하기에 더 좋은 앱을 만드는 실제 예입니다. 당신은 또한 수 $('document').ready()

  • Using AngularJS? Then stop using jQuery

  • 대신 이러한 관점에서 확장 훌륭한 스택 오버플로 포스트 -

    이 물건

    +0

    나는 모든 jquery 관련 항목을 제거 할 것입니다. 그리고 각도로 마이 그 레이션. –

    +0

    @DeepankarBajpeyi가 가장 좋습니다 ....... –

    관련 문제