2012-09-13 8 views
8

Występuję w sytuacji, w której mam fied z wartością ${test}, w moim szablonie komponentu, który renderuje, że wartość wychodzi, ok problem pojawia się, gdy inny szablon wywołuje ten komponent i szablony używające @@RenderComponentPresentation(Component.ID, MyFirstTemplate)@@ w tym momencie ${test} jest oceniane, a ponieważ nie ma takiego elementu na komponencie lub w pakiecie, to ocenia on jako niezawierający.

  • mam Komponent Szablon Jeden, który odczytuje wartość pola składnik (który zawiera: ${test})

    • Ten szablon czyni dobrze, wrócę "$ {Test}"
  • teraz mam Komponent Szablon Dwa który wywołuje @@RenderComponentPresentation(Component.ID, ComponentTemplateOne.ID)@@

    • To tutaj ${test} jest teraz oceniany zamiast zachowywany, więc przechodzi od ${test} do "", ponieważ nie znajduje nazwy zmiennej lub nazwy komponentu o tej nazwie.
  • Element Template Dwie następnie zostanie wywołany przez komponent Template trzy w taki sam sposób @@RenderComponentPresentation(Component2.ID, ComponentTemplateTwo.ID)@@

    • Od ${test} zostało już ocenione i stracił w komponencie Szablon Dwóch już nie skończyć z ${test} jestem nadal pozostało z "".

Próbowałem:

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

bez powodzenia.

Poniższa była moja praca wokół i wydaje się działać:

  • Umieszczenie „\” przed zarówno otwartych i ścisłej nawias klamrowy $\{test\}
  • muszę upewnić się usunąć " \ "po wykonaniu ostatniego szablonu (strony lub komponentu).
  • mam w miejscu obecnie C# TBB że bierze „$ {testowych}” i wykonuje następujące operacje do niego:
    • Konwertuje ${test} do $\{test\} w początkowym szablonie i C# TBB na szablon strony, który następnie zwraca go do wartości początkowej ${test}.

Czy istnieje sposób, aby temu zapobiec lub sposób, aby uniknąć robić to, co robię do tej pracy?

Odpowiedz

4

Czy próbowałeś ten link, powinieneś być w stanie to z tego linka

@@"$" + "{" + "test" + "}"@@ 
+0

Dzięki za sugestię, że pracuje dla pierwszego szablonu ale drugi szablon, który wywołuje pierwszy szablon ocenia go i nie znajdź element w paczce lub w komponencie o tej nazwie i nic nie powtórzy. Zamiast zatrzymywać $ {endpoint} otrzymuję "". – TridionNut

Powiązane problemy