Wie kann ich $ {} in meiner Tridion Component Vorlage, die von mehreren Vorlagen verbraucht wird, fliehen?

8

Ich stoße auf eine Situation, in der ich den Wert ${test} habe, in meiner Komponentenvorlage, die diesen Wert rendert. ok das Problem kommt, wenn eine andere Vorlage diese Komponente und Vorlagen mit @@RenderComponentPresentation(Component.ID, MyFirstTemplate)@@ at aufruft An diesem Punkt wird die ${test} ausgewertet und da es kein solches Element in der Komponente oder im Paket gibt, wird nichts ausgewertet.

  • Ich habe Component Template One, das den Wert eines Component-Feldes liest (welches enthält: ${test} )

    • Diese Vorlage wird gerendert, ich bekomme "$ {test}"
    • zurück
  • Jetzt habe ich Component Template Two, das @@RenderComponentPresentation(Component.ID, ComponentTemplateOne.ID)@@

    aufruft
    • Dies ist der Punkt, an dem ${test} jetzt ausgewertet und nicht mehr beibehalten wird, so dass es von ${test} nach "" geht, weil es keinen Variablen- oder Komponentenfeldnamen mit diesem Namen findet.
  • Component Template Two wird dann von Component Template Three auf die gleiche Weise aufgerufen @@RenderComponentPresentation(Component2.ID, ComponentTemplateTwo.ID)@@

    • Da die ${test} bereits ausgewertet wurde und in Component Template Two verloren ist, komme ich nicht mehr mit ${test} voran. Ich habe immer noch "".

Ich habe es versucht:

  • @@RenderComponentField('myField', 0, False, False)@@
  • @@RenderComponentField('myField', 0, True, False)@@
  • @@RenderComponentField('myField', 0, False, True)@@

kein Glück.

Das Folgende war meine Arbeit und es scheint zu funktionieren:

  • Platzieren Sie das "\" vor der offenen und schließenden geschweiften Klammer $\{test\}
  • Ich muss sicherstellen, dass ich das "\" entferne, nachdem die letzte Vorlage (Seite oder Komponente) ausgeführt wurde.
  • Ich habe jetzt eine C # TBB, die den "$ {test}" übernimmt und tut folgendes:
    • Konvertiert die ${test} in $\{test\} in der ursprünglichen Vorlage und eine C # TBB in die Seitenvorlage, die sie dann an den Anfangswert von ${test} zurückgibt.

Gibt es eine Möglichkeit dies zu verhindern oder einen Weg zu vermeiden, das zu tun, was ich mache, damit das funktioniert?

    
TridionNut 13.09.2012, 15:01
quelle

1 Antwort

4

Haben Sie diesen Link ausprobiert, sollten Sie dies mit diesem Link tun können

%Vor%     
vikas kumar 13.09.2012 15:15
quelle

Tags und Links