2016-11-23 2 views
0

Ich benutze Ember.js Version 2.8.2.Wie erstelle ich in Ember.js einen bedingten Link zu?

Ich möchte Dinge in link-to nur wickeln, wenn Bedingung wahr ist.

Erster Versuch:

{{#if isAdmin}} 
    {{#link-to admin}} 
    contents here 
    {{/link-to}} 
    {{else}} 
    contents here 
{{/if}} 

Problem: der Code nicht trocken ist, weil Inhalt zweimal wiederholt.

Wie soll ich das tun? Vielen Dank.

+0

Für mich Ihren Code sieht ok, da es keine Zustandsprüfung ist vorgesehen in Link-zu-Helfer – kumkanillam

+1

@kumkanillam Der Code funktioniert, aber es trocknet nicht. In der Tat hat mein Inhalt viele Zeilen, Kopieren und Einfügen wie das ist machbar. Ich denke einen besseren Weg, dies zu tun. –

+0

dann ist es möglich, dass Sie eine Komponente erstellen und diese einschließen, so dass Sie sie an einem Ort schreiben und überall verwenden können. – kumkanillam

Antwort

5

Erste Option:

Wenn Sie es von Ihrem dom entfernen möchten, wickeln Sie Ihre "Link zu" Komponente als Komponente (my-admin-link.hbs):

{{#if isAdmin}} 
    {{#link-to admin}} 
    {{yield}} 
    {{/link-to}} 
{{else}} 
    {{yield}} 
{{/if}} 

als es als verwenden:

{{#my-admin-link}} 
    your content 
{{/my-admin-link}} 

Zweite Option:

Verwendung deaktiviert und disabledClass von Link-to:

{{#link-to admin disabled=isNotAdmin disabledClass='showastext'}} 
    your content 
{{/link-to}} 

In Ihrem app.css showastext kann wie folgt definiert werden:

.showastext{ 
    text-decoration: none; 
    cursor: text; 
    color: black; 
} 
Verwandte Themen