gpt4 book ai didi

Polymer 元素注册前的 JavaScript 初始化

转载 作者:搜寻专家 更新时间:2023-11-01 04:36:17 25 4
gpt4 key购买 nike

Polymer v0.5v1.0 Polymer elements 的注册过程似乎是不同的。在 Polymer v1.0 之前,我们可以从 index.html 执行 JavaScript 代码来初始化我们的 Polymer 元素 中所有需要的对象。这是一个非常重要的细节,因为 Polymer 中的 data-binding ONLY 在初始化有界对象时正确工作 FIRST。这意味着以下内容:

例如,如果您想使用 {{ }}[[ ]] 绑定(bind) Polymer 元素 中的对象,则该对象必须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>

问题是如果 Polymer 元素 被注册 BEFORE app.obj 被初始化(在上面的例子中 this. objPolymer element 注册时是 undefined)然后 NO 通知将被执行,即使 app.obj NOT undefined 稍后。

所以在这种情况下,我们需要先初始化所有有界对象,然后才能将它们与 {{ }}[[ ]] 一起使用。

我们的方法完全错误吗???有什么建议吗???

最佳答案

作为解决方法,我将添加一个事件监听器,而不是 this.obj = app.obj;ready 函数中app.obj 加载然后设置绑定(bind):

ready: function() {
var that = this;
this.addEventListener('app-obj-loaded', function() {that.obj=app.obj});
}

关于Polymer 元素注册前的 JavaScript 初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30860722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com