CS クラスにオプション オブジェクトがあり、その中にいくつかのテンプレートを保持したいと考えています。
class MyClass
options:
templates:
list: "<ul class='#{ foo }'></ul>"
listItem: "<li>#{ foo + bar }</li>"
# etc...
次に、これらの文字列をコードの後半で補間したいと思います...しかし、もちろん、これらは にコンパイルされ"<ul class='" + foo +"'></ul>"
、 foo は未定義です。
を使用して実行時にこれを行う公式の CoffeeScript の方法はあり.replace()
ますか?
編集:私は助けるために小さなユーティリティを書くことになりました:
# interpolate a string to replace {{ placeholder }} keys with passed object values
String::interp = (values)->
@replace /{{ (\w*) }}/g,
(ph, key)->
values[key] or ''
したがって、私のオプションは次のようになります。
templates:
list: '<ul class="{{ foo }}"></ul>'
listItem: '<li>{{ baz }}</li>'
そして、コードの後半で:
template = @options.templates.listItem.interp
baz: foo + bar
myList.append $(template)