2017-11-02 6 views
0

경로를 처음로드 할 때 수동 HTML 레이아웃 해결 프로그램을 일관성있게 실행하려고 할 때가 있습니다. (나는 부트 스트랩을 사용하고 있지만 클라이언트의 레이아웃은 틀에 얽매이지 않습니다.) 많은 검색을 수행하고 몇 가지 수정을 시도했습니다. 시청중인 $viewContentLoaded이 작동하지 않았습니다. angular.element(document).ready()을 사용하면 이동하지 않았습니다. 표준 jQuery를 사용하면 $(document).ready()이 작동하지 않습니다. ng-init가 작동하지 않았습니다. 많은 사람들이 지정된 지연없이 $timeout 서비스를 사용하도록 제안했습니다.이 지연은보기가로드 된 후 실행됩니다. 적어도 때로는 성공적이었습니다.

var w = angular.element($window); 
var dimensionFixer = function() { 
    angular.element('#home-bottom').css("height", angular.element('#top').height()); 
    angular.element('#logo-box').css("height", angular.element('#home-top-left').height() - angular.element("#home-top-right-partial").height() - 15); 
}; 
w.bind('resize', dimensionFixer); 
$timeout(dimensionFixer); 

가 가끔 작동 :

여기 내 컨트롤러의 덩어리입니다. 때로는 그렇지 않습니다. 나는 또한 $viewContentLoaded$timeout을 결합하려고 시도했습니다. 크기 조정시 항상 작동합니다. $timeout 또는 브라우저 기능이 변경 되었습니까?

감사합니다.

답변

1

옵션 1 : 시간 제한 내에 요소 크기를 포함하십시오. 되살아 난 코드는

입니다. var w = angular.element ($ window); $ timeout (function() { var dimensionFixer = function ({angle.element ('# home-bottom')} css ("height", angular.element ('# top'). height()); 각도입니다. height.element ("# home-top-right-partial"). 요소 ('# logo-box'). 높이() - 15);}; w.bind ('크기 조정', dimensionFixer) })

옵션 2 : 명시 적 옵션 1이 해결되지 않은

+0

DOM을 업데이트 $scope.$apply를 호출 . 그것은 여전히 ​​오른쪽 정렬 할 수 있습니다. $ scope. $ apply() 호출하려면 어디에? 내가 시도한 곳에서 내 inprog 오류가 발생했습니다. 편집 : 함수를 resize 이벤트에 바인딩 한 후 'dimensionFixer();'가 추가되었습니다. 일하고있는 것 같아서 고마워! 편집 2 : 아니, 여전히 항상 작동하지는 않습니다. :( –