DoK*_*DoK 5 javascript initialization object polymer-1.0
从Polymer v0.5到v1.0的注册过程Polymer elements似乎有所不同.之前Polymer v1.0我们可以执行JavaScript代码index.html来初始化我们所需的所有对象Polymer elements.这是一个非常重要的细节,因为data-binding在Polymer 只有当有限的对象初始化工作正确FIRST.这意味着以下内容:
例如,如果你想绑定一个对象在Polymer element同{{ }}或[[ ]],对象必须在之前定义Polymer element注册!看到:
<dom-module id="my-elem">
<template>
<div>This should be my bounded object: <b>{{obj.name}}</b></div>
</template>
<script>
Polymer({
is: 'my-elem',
ready: function () {
// Global initialized object!!!
// app.obj ==> app.obj = { name: 'Great', info: 'Additional info!!!' };
this.obj = app.obj;
}
...
</script>
</dom-module>
Run Code Online (Sandbox Code Playgroud)
的问题是,如果Polymer element被登记之前 app.obj被初始化(在上述的例子this.obj是undefined在时间Polymer element配准),然后NO通知将被执行,即使当没有更新提供app.obj是NOT undefined以后.
因此,在这样的情况下,我们需要首先初始化所有有界对象之前,我们可以使用它们{{ }}或[[ ]].
我们的做法完全错了吗?有什么建议???
我有类似的情况,但工作时不用担心异步。只需明确定义属性就可以了。
properties: {
obj: {
type: Object,
value: {}
}
}
Run Code Online (Sandbox Code Playgroud)
如果这不起作用,请尝试指定observer并定义一个正确处理该问题的函数obj。
properties: {
obj: {
type: Object,
value: {},
observer: 'loaded'
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
984 次 |
| 最近记录: |