2016-07-23 12 views
0

Ich habe Vorlage und Controller beide Navbar erstellt. Der Code, den ich in der Steuerung haben, ist einfachtoggle Element Sichtbarkeit in Ember js basiert auf einem boolean

import Ember from 'ember'; 

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

und dass in Vorlage

{{#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> 

Das gleiche scheint nicht zu funktionieren. Gehe ich irgendwo falsch?

Die Vorlage und der Controller wurden mit dem Generator Generator selbst generiert und der obige Code ist die einzige Modifikation, die ich gemacht habe.

EDIT:

die Dokumentation Explo, bemerkte ich, dass der Name des Controllers gleich sein sollte wie in Route definiert. Jetzt ist Navbar nur eine Vorlage, die ich mit partial importiere, gibt es eine Workaround, die ich für das gleiche verwenden könnte?

Antwort

0

Sie sollten eine Komponente dafür verwenden.

Verwenden Sie {{partial}} nur, wenn Sie eine Vorlage im aktuellen Kontext rendern möchten. Verwenden Sie es nur, wenn Ihre .hbs Dateien zu groß werden, aber verwenden Sie es selten. Oft ist eine Komponente die bessere Wahl.

Auch dort sollten Sie fast nie {{render}} verwenden. Sie können es fast immer zu einer Komponente umgestalten.

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

+0

danke für den Tipp. Neuling hier, also brauchte ich etwas Zeit, um durch die Dokumente zu kommen. Sorry kann nicht die Antwort begrenzte Reputation upvote :( –

+0

Ich bin froh, ich könnte helfen. Aber in Betracht ziehen [akzeptieren] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer (Arbeit) eine der Antworten, Sie brauchen nicht up Wahlprivileg für das. – Lux

+0

tat das. Danke nochmal für die Hilfe :) –

0

Das Problem war, dass "teilweise" wird nur die Vorlage nicht die Controller zur Verfügung stellen. Der richtige Weg wäre, render zu verwenden, der auch Ansichten und Controller importiert.