2016-08-11 5 views
1

Ich habe den folgenden Code in einem Schienen schlank Layout:Rails slim "wenn" Aussagen und verschachtelte Tags

- if content_for(:body_tag) 
    yield :body_tag 
- else 
    body 

Die: BODY_TAG Vorlage wird in der Regel so etwas wie body ng-controller='myAngularAppController' beinhalten, zum Beispiel

Das Problem ist, dass alle nachfolgenden Befehle, die ich mache, nicht innerhalb des Body-Tags verschachtelt werden. Wenn ich

- if content_for(:body_tag) 
    yield :body_tag 
- else 
    body 
.container 
... 

Der body Tag schreiben wird, bevor der Behälter beginnt zu schließen. Wenn ich

- if content_for(:body_tag) 
    yield :body_tag 
- else 
    body 
    .container 
    ... 

Der Behälter wird nicht überhaupt machen zu schreiben, wenn ein :body-tag angegeben ist.

Ich nehme an, das ist ein häufiges Problem. Irgendwelche Gedanken?

+0

Also der Inhalt des Körpers wird immer der gleiche sein, aber Sie müssen für das 'body' Tag dynamisch sein, basierend auf der Anwesenheit/Abwesenheit von': body_tag', richtig? – jeffdill2

+0

@ jeffdill2 Ja, richtig – PlankTon

+0

Haben Sie jemals eine Lösung für Ihr Problem gefunden? – jeffdill2

Antwort

1

Wenn das einzige, was auf den body dynamisch sein werden ist das ng-controller Attribut, würde ich empfehlen, es wie folgt erreichen:

body ng-controller=content_for(:controller) 

Statt den gesamten Tag mit der :body_tag Kennung spezifiziert, nur angeben, die body Tag statisch (weil das ist statisch) und der dynamische Controller, den Sie mit einem :conroller (oder was auch immer Sie es nennen möchten) Bezeichner verwenden möchten.