Я сталкиваюсь с ситуацией, когда у меня есть поле со значением ${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.
- This is where the
Затем второй шаблон компонента вызывается шаблоном компонента 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 "".
- Since the
Я пытался:
@@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}
.
- Converts the
Есть ли способ предотвратить это или способ избежать того, что я делаю, чтобы заставить эту работу работать?