2016-07-23 1 views
0

navbar라고하는 템플릿과 컨트롤러를 만들었습니다. 내가 컨트롤러에이 코드는 단순히부울을 기반으로 ember js의 요소 가시성을 전환하십시오

import Ember from 'ember'; 

export default Ember.Controller.extend({ 
    isLogged: true, 
}); 

과 템플릿의 그 같은이 작동하지 않을

{{#if isLogged}} 
     {{#link-to 'login' class="uk-button uk-button-danger"}}Login{{/link-to}} 
     {{#link-to 'signup' class="uk-button uk-button-danger"}}Join now{{/link-to}} 
    {{else}} 
     {{#link-to 'dashboard' class="uk-button uk-button-danger"}}Dashboard{{/link-to}} 
    {{/if}} 
<button class="uk-button uk-button-large uk-button-primary uk-width-1-1" disabled={{isLogged}}>Test button</button> 

입니다. 나는 어딘가 잘못 가고 있니?

템플리트와 컨트롤러는 ember 생성기 자체를 사용하여 생성되었으며 위 코드는 내가 작성한 유일한 수정 사항입니다.

EDIT :

는 문서를 탐색, 나 노선에 정의 된 컨트롤러의 이름이 동일 할 것을 알아 차렸다. 이제 navbar는 내가 partial을 사용하여 가져 오는 템플릿 일 뿐이며 동일한 해결 방법을 사용할 수 있습니까?

답변

0

구성 요소를 사용해야합니다.

현재 컨텍스트에서 템플릿을 렌더링하려는 경우에만 {{partial}}을 사용하십시오. .hbs 개의 파일이 커졌을 때만 사용하십시오. 그러나 거의 사용하지 마십시오. 종종 구성 요소가 더 나은 선택입니다.

또한 여기서는 거의 사용하지 말아야합니다. {{render}}. 거의 언제나 컴포넌트로 리팩토링 할 수 있습니다.

{{render}} with a model param is deprecated.

+0

팁을 주셔서 감사합니다. 여기 초보자가 문서를 읽는 데 시간이 걸렸습니다. 죄송합니다 대답 제한된 평판을 upvote 수 없습니다 : ( –

+0

내가 도울 수있어서 기뻐하지만. [수락] 고려 (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer -work) 답변 중 하나 인 경우 투표 특권이 필요하지 않습니다. – Lux

+0

. 도와 주셔서 다시 한 번 감사드립니다. –

0

'부분적인'문제는 컨트롤러가 아니라 템플릿 만 제공한다는 것입니다. 올바른 방법은 뷰와 컨트롤러도 가져 오는 render을 사용하는 것입니다.

관련 문제