タイトルがわかりづらくてすみません。
以下のように他の静的変数を参照する静的変数をそのまま取得したいです。
静的変数
name: 斎藤
text: こんにちは#{name}さん!
script
var text = #{text}
// こんにちは斎藤さん!
script(要望)
var text = #{置換されるまえのtext}
// こんにちは#{name}さん!
タイトルがわかりづらくてすみません。
以下のように他の静的変数を参照する静的変数をそのまま取得したいです。
静的変数
name: 斎藤
text: こんにちは#{name}さん!
script
var text = #{text}
// こんにちは斎藤さん!
script(要望)
var text = #{置換されるまえのtext}
// こんにちは#{name}さん!
@matamatak
KARTEの現状の仕様だと、静的変数はJavaScriptとして解釈される前にNunjucksで解決されてしまうので、難しいと思います!
ちなみに、どのようなユースケースを想定されている質問でしょうか??
回答ありがとうございます。
ユーザー情報変数
name: 斎藤
(デフォルト値は「あなた」)
静的変数
honorific:様 or くん or さん etc…
text: こんにちは#{name}#{honorific}!
このケースで#{name}がデフォルト値だった場合
つまり#{name} = 'あなた’だったら#{honorific}を正規表現で削除したいです。
(「あなたさん」はおかしい)
@matamatak
確かにこの場合、静的変数textを使い続けるのは難しいかもしれません。
ただし、静的変数textの内容をJavaScriptで生成しwidgetの動的変数として登録することで、同様の内容は実現できるかと思います。
var name = #{name};
var displayName = name === 'あなた' ? name : name + #{honorific};
widget.setVal('text', 'こんにちは' + displayName);
<div>{{text}}</div>
参考になりました。
ビジネス側もscriptを少し触ってもらうように調整する予定です。
ありがとうございました。
こういうやりかたもありそうですね
ユーザー情報変数
name: 斎藤 (default: あなた)
script
widget.setVal('name', #{name})
HTML
こんにちは<span krt-if="name !== 'あなた'">#{name}さん</span>
参考になります。ありがとうございます。
ただ今回のユースケースはscriptだけで完結するDOMの書き換えでした。
説明不足ですみません。
せっかくなので他に検討した実装案を明記しておきます。
var text = “#{text}”;
var default_name = “#{name}” + “#{honorific}”;
if (default_name = “あなた” + “#{honorific}”) {
//変数textにdefault_nameが含まれていたらインデックスを取得して変数honorificの文字数文だけ削除する
}
この’あなた’も変数化できるのが理想です。
変数→ユーザー情報変数→デフォルト値 は変数参照できるんでしょうか。確認してみます。