2016-12-13 6 views
0

컨트롤러 (컨트롤러 As 구문 사용)가있는 1.5 각도 구성 요소가 있습니다. 페이지에 특정 html 요소가 있으면 구성 요소에 추가 css 클래스를 추가하는 함수를 작성했습니다. 이 특정 HTML 요소가 없으면이 추가 CSS 클래스가 구성 요소에 적용되지 않습니다. html 요소가있는 페이지에서 작동합니다. 그러나 다른 상태로 전환 할 때 html 요소가이 상태에 존재하지 않더라도이 구성 요소는 추가 css 클래스를 유지합니다. 구성 요소의 컨트롤러에서 제공되는 기능을 '재설정'하려면 앱을 새로 고침해야합니다. 이 구성 요소는 응용 프로그램의 모든 페이지에서 사용됩니다. 우리는이 HTML 요소가 존재하는 상태에있을 때각도 1.5 구성 요소 문제 - 다른 상태로 변경할 때 해당 컨트롤러에서 오는 기능을 '재설정'하는 방법?

function myComponentController() { 

    activate(); 

    function activate(){ 
    addAdditionalCssClass(); 
    } 

    function addAdditionalCssClass(){ 
    // code for adding additional css class to the component 
    // if html element exists 
    } 

} 

그것은 잘 작동 :

는 예를 들어, 내 구성 요소입니다. 그러나 구체적인 html 요소가 null 인 다른 상태로 이동하면 addAdditionalCssClass() 함수가 구성 요소에 클래스를 추가로 계속 추가합니다. 어떤 도움이나 제안이라도 대단히 감사하겠습니다.

+0

나는 무엇이 문제인지 이해하지 못한다. 더 많은 코드를 제공 할 수 있습니까? –

답변

1

제가 알고 있듯이이 페이지에는 일부 동적 HTML과이 클래스의 변경 사항이있는 현재 상태가 반영된 구성 요소가있는 페이지가 있습니다.

하나의 해결책은 클래스 목록에 의존하는 구성 요소를 갖는 것, 즉 속성을 갖는 것입니다.

.component('classSpecial', { 
    template: "<div ng-class='$ctrl.classes'>Hello</span></div>", 
    bindings: { 
    classes: '<' 
    } 
}) 

는 페이지의 컨트롤러에서 구성 요소의 클래스를 변경할 수 simple example here을 참조하십시오.

+0

나는 당신이 나에게 준 아이디어 때문에이 문제를 부분적으로 해결했다. 감사! – Julsy