我在pyramid / jinja2项目中使用ractivejs,我想知道,如果可以对输入元素进行ractive双向绑定,并且初始值加载了服务器端模板。
例如,我有这个元素:
<input name="name">
如果我为jinja2(服务器端)模板使用{{}}分隔符,并为ractivejs使用[[]]分隔符,我可以这样做
<!-- This will have initial value taken from server,
but with no binding to ractivejs -->
<input name="name" value="{{ name }}">
或:
<!-- This will be two-way binded with ractivejs data,
but it's initial value needs to be defined in javascript -->
<input name="name" value="[[ name ]]">
现在我想做的是加入这两种情况:输入绑定ractivejs数据,但从服务器端模板获取初始值。
如果不创建&lt;脚本&gt;服务器端模板中的标签?
编辑:
目前,我只是复制输入,第二个副本是双向绑定和隐藏,可见副本是只读的(如果我需要编辑,我会交换它们。)
我想我可以编写一个设置初始值的装饰器,但是当我需要一个真正的&#34;时它仍会产生问题。装饰者(比方说,使用select2插件)
答案 0 :(得分:1)
我不熟悉jinja2,但尝试使用Ractive双向绑定并使用jinja2来&#34; bind&#34;服务器端值到Ractive数据定义。
<div id="output"></div>
<script id="template" type="text/html">
<input name="name" value="[[ name ]]">
</script>
<script type="text/javascript">
new Ractive({
template: "#template",
el: "#output",
delimiters: [ '[[', ']]' ],
data: {
name: "{{ name }}" // the 'name' value from jinja2 gets copied to Ractive
}
});
</script>