2017-05-06 2 views
0
$('#reply').css("padding-top", $('.post:visible').height()-35 + "px"); 

내가 #reply.post에 높이의 CSS padding-top 값을 설정하는 것입니다하고 있어요. 나는이 지금까지 내 AngularJS와 프로젝트에서 작업을 얻을 수다른 요소의 높이를 기반으로 요소의 스타일을 변경하는 AngularJS와 방법은 무엇

있는 유일한 방법은 이것이다 :

$(function() { 
    setTimeout(function() { 
    $('#reply').css("padding-top", $('.post:visible').height()-35 + "px") 
    },300) 
}); 

어떻게 코드가있는과 같은 예를 들어, 그것을 아마 뭔가를 각도 방식으로 할 것 어떤 종류의 angular.copy? 또는 jQuery를 계속 사용하면됩니다. 그렇다면 어떻게하면 AngularJS가 완료 될 때 실행시킬 수 있습니까? 그렇다면 시간 초과 기능이 필요하지 않습니까?

<div id="#reply" ng-style="{'padding-top' : code_that_returns_.post:visible's_height }"> 
+0

아마도 이에 대한 지침이 필요할 것입니다. 게시물이 표시되는지 여부를 정확히 결정하는 것은 무엇입니까? [mcve]를 제공하십시오 – charlietfl

+0

jQuery.expr.filters.hidden = function (elem) { var width = elem.offsetWidth, height = elem.offsetHeight; return (width === 0 && height === 0) || (! jQuery.support.reliableHiddenOffsets && ((elem.style && elem.style.display) || jQuery.css (elem, "display")) === "없음"); }; –

+0

아픈 사람이 내일에 더 많은 작업을하고 아마 아주 못생긴 나쁜 예를 들어 해결할 것입니다. 아픈 질문을 정리해도 나쁜 일은 유감이다. –

답변

0

질문에 대한 질문이 많지 않지만 시간이 지남에 따라 질문과 답변을 모두 결정할 것입니다.

현재 이것은 내 해결책입니다 (시간 초과 문제가 해결됨).

<div id="#reply" ng-style="{'padding-top' : calcPostHeight() }"> 

$scope.calcPostHeight = function() { 
    return $('.post:visible').height()-35 + "px"; 
}; 

편집 :

이 솔루션은 더 나쁜 것 같다 ...하지만 지시문을 사용합니다.

<div id="#reply" post-height="35"> 

.directive('postHeight', function($timeout){ 
    return { 
    link: { 
     post: function (scope, element, attr) { 
     $timeout(function(){ 
      var result = document.getElementsByClassName("post")[0]; 
      element[0].style.paddingTop = result.style.width - attr.postHeight; 
     }, 0) 
     } 
    } 
    } 
}); 
+0

이것은 요소 자체가 노출되어있는 지시문에 있어야합니다. jQuery와 돔 코드는 컨트롤러에 속하지 않습니다 – charlietfl

+0

그 지시어 코드에 대한 제 13 가지 포인트를 모두 제공하십시오 ... 여러분이 만든 모든 게시물은 각도가 얼마나 나빴는지 알려주고 저에게 손을 내밀어주십시오. 나는 이것에 계속 갈 것입니다 ... 좋은 각도의 좋은 코드가 어떻게 생겼는지는 알고 있지만 글을 쓰지는 못합니다. 이것은 첫 번째 각도 프로젝트입니다. 나는 단지 잘 수행 된 것을 유지했기 때문에 그것을했습니다. 복잡한 프로젝트에서 쉽게 사용할 수 있습니다. theres가 많기 위하여려고하기 때문에 다만 나쁜 일을 대략 지적하기 중지하십시오. 도움을 주시기 바랍니다. –

+0

ng-class와 css를 사용하십시오. 당신은 너무 많은 반응 방식을 생각하고 있습니다. 하나의 문자열로 언어를 혼합하는 것을 권장하지 않습니다. NgClass는 실시간으로 $ scope (app.controller 또는 directive 컨트롤러에서)에 반응합니다. –

관련 문제