この会話は、活動がないためロックされています。新しい投稿を作成してください。
この会話は、活動がないためロックされています。新しい投稿を作成してください。
model.title contains one of the two values - "Back to {0}" or "Back"
<sly data-sly-test.title="${model.title}"/>
<a>${'{0}' in title ? title @ format=currentPage.parent.title : title}</a>
Neither
${'{0}' in title ? title @ format=currentPage.parent.title : title}
nor
${'{0}' in title ? (title @ format=currentPage.parent.title) : title}
gives the expected result. What is the correct way?
解決済! 解決策の投稿を見る。
表示
返信
いいね!の合計
I would suggest if you already have a support script(Sling Model or Use API), better write logic in the script itself like below. This will make you view simple ans clean.
Support Script:
model.title = title.contains("{0}") ? title.replace("{0}", currentPage.parent.title) : title; (JavaScript Use API example, you can try similar in Java Use API or Sling Model)
HTL:
<a>${title}</a>
-AG
Please use the below mentioned format option syntax.
<sly data-sly-test.containsText="${'{0}' in title}">
${title @format = currentPage.parent.title}
</sly>
<sly data-sly-test="${!containsText}">
${title}
</sly>
Hope this helps!
please try adding conditions as mentioned below.
<sly data-sly-test.title="${model.title}"/>
<sly data-sly-test.containsText="${'{0}' in title}">
${title @format = currentPage.parent.title} <!-- 'parent page title' in title -->
</sly>
<sly data-sly-test="${!containsText}">
${title} <!-- title -->
</sly>
表示
返信
いいね!の合計
Hi @Sravan_Kumar_Si,
Here is the working code:
<sly data-sly-test.title="${model.title}"/>
<a>${'{0} in title' @ format= currentPage.getParent.getTitle ? currentPage.getParent.getTitle : title} </a>
Put the {0} and the other strings in single quotes.
Thanks,
Kiran Vedantam.
表示
返信
いいね!の合計
Hi @Kiran_Vedantam and @Manjunath_K , Thanks for getting back but this did not solve my issue. My objective is if the place holder {0} is there in the value of title then replace it otherwise simple use the value of title. '{0}' in title - this is to check for the existence of substring '{0}' in value of title variable. If I enclose every thing inside '' then "in" is not considered as an operator and "title" is not taken as value of the variable.
表示
返信
いいね!の合計
Hi to replace and use parentpageTitle instead of title you can use the below code:
<a>${'{0}' in title ? currentPage.getParent.getTitle : title}</a>
I am not sure why are you using @ format= here.
Thanks,
Kiran Vedantam
表示
返信
いいね!の合計
model.title contains one of the two values - "Back to {0}" or "Back" <sly data-sly-test.title="${model.title}"/>
My objective is if the place holder {0} is there in the value of title then replace it otherwise simple use the value of title.
表示
返信
いいね!の合計
I would suggest if you already have a support script(Sling Model or Use API), better write logic in the script itself like below. This will make you view simple ans clean.
Support Script:
model.title = title.contains("{0}") ? title.replace("{0}", currentPage.parent.title) : title; (JavaScript Use API example, you can try similar in Java Use API or Sling Model)
HTL:
<a>${title}</a>
-AG
表示
返信
いいね!の合計
表示
返信
いいね!の合計
表示
返信
いいね!の合計
If you want to do it from view(HTL), the best option is having two expressions
<a>${'{0}' in model.title ? model.title : "" @ format=currentPage.parent.title} ${!('{0}' in model.title) ? model.title : ""}</a>
If you want your view(HTL) to be simple and more readable, as I mention earlier write the logic in support script.
Hope you got the Answer.
-AG