在聚合物中将值从后端传递到前端

Pass values from backend to frontend in polymer

我正在使用 Google App Engine 和 Polymer 构建网络应用程序。

在使用 polymer 之前,我曾经使用 jinja2 模板将我的值传递到前端:

def render_str(self, template, **params):
    t = JINJA_ENV.get_template(template)
    return t.render(params)

def render(self, template, **kw):
    self.write(self.render_str(template, **kw)))

-

{% for note in notes %}
<div class="note">
    <div>{{note.title}}</div>
    <div>{{note.created}}</div>
</div>
{% endfor %}

这适用于主页,但所有导入的聚合物文件都超出了这些传递值的范围。

如何将值从我的后端传递到我的聚合物表单?有没有办法让我导入的聚合物文件与我的主页在同一范围内,或者是否有一个我可以使用备用模板引擎吗? 我看到 polymer 有它自己的 templating and data binding 但我找不到用我后端的值填充它们的方法。

Polymer 中的数据绑定非常简单。使用聚合物表达式,例如

var testString = "Hello"

<div id="test" class="test">{{testString}}</div>

document.getElementById("test").testString = "Whats up?";

要将值从主页传递到组件,您可以使用归因模型,例如

<my-polymer-component id="test" mydata="Hello" />

<polymer-element attributes="mydata ...">

或者只是将其分配给 Polymer 元素本身:

document.getElementById("test").mydata = "Whats up";

变量会自动填充到 Polymer 元素中。从中读取是一样的——只要它们暴露在元素本身上,甚至在实际的 Polymer 对象中定义:

Polymer('my-polymer-component', {
 mydata: 'foo',

 ready: function() { ... }
});