Как избежать ${} в моем шаблоне компонента Tridion, который используется несколькими шаблонами?

Я сталкиваюсь с ситуацией, когда у меня есть поле со значением ${test}, в моем шаблоне компонента, который отображает это значение, выходит нормально, проблема возникает, когда другой шаблон вызывает этот компонент и шаблоны, использующие @@RenderComponentPresentation(Component.ID, MyFirstTemplate)@@, в этот момент оценивается ${test} и поскольку такого элемента нет ни в компоненте, ни в пакете, он ничего не оценивает.

  • У меня есть первый шаблон компонента, который считывает значение поля компонента (которое содержит: ${test})

    • This template renders fine, I get back "${test}"
  • Теперь у меня есть второй шаблон компонента, который вызывает @@RenderComponentPresentation(Component.ID, ComponentTemplateOne.ID)@@

    • This is where the ${test} now gets evaluated instead of retained so it goes from ${test} to "" because it doesn't find a variable or component field name with that name.
  • Затем второй шаблон компонента вызывается шаблоном компонента 3 таким же образом @@RenderComponentPresentation(Component2.ID, ComponentTemplateTwo.ID)@@

    • Since the ${test} has already been evaluated and lost in Component Template Two I no longer end up with ${test} I am still left with "".

Я пытался:

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

не повезло.

Следующее было моей работой, и, похоже, она работает:

  • Размещение "\" перед открывающей и закрывающей фигурной скобкой $\{test\}
  • Мне нужно убедиться, что я удалил "\" после выполнения последнего шаблона (страницы или компонента).
  • I have in place now a C# TBB that takes the "${test}" and does the following to it:
    • Converts the ${test} to $\{test\} in the initial template and a C# TBB on the Page Template that then returns it to the initial value of ${test}.

Есть ли способ предотвратить это или способ избежать того, что я делаю, чтобы заставить эту работу работать?


person TridionNut    schedule 13.09.2012    source источник


Ответы (1)


Пробовали ли вы эту ссылку , вы сможете сделать это по этой ссылке

@@"$" + "{" + "test" + "}"@@
person vikas kumar    schedule 13.09.2012
comment
Спасибо за предложение, это работает для первого шаблона, но второй шаблон, который вызывает первый шаблон, оценивает его и не находит элемент в пакете или в компоненте с таким именем и ничего не возвращает. Поэтому вместо сохранения ${endpoint} я получаю . - person TridionNut; 13.09.2012