聚合物生命周期:为什么属性尚未从'附件'回调
Polymer Lifecycle: Why are properties not yet loaded from DOM attributes at 'Attached' callback?
我很难理解聚合物元素的生命周期。
假设我有一个具有单个属性fooBar
的自定义元素。假设我像这样设置fooBar
作为属性上的属性
<custom-element foo-bar="text"></custom-element>
现在假设我想在元素生命周期创建期间以编程方式使用fooBar
作为属性。所以有点像。
Polymer({
is: "custom-element",
properties: {
fooBar: {type: String}
},
ready: function(){
console.log(this.fooBar)
},
attached: function(){
console.log(this.fooBar)
}
})
据我所知,元素属性fooBar直到调用了ready
和attached
之后才从DOM属性fooBar加载。即使我从准备好的和附加的回调内部调用async,这也是正确的。
有人能解释一下(1)元素属性在生命周期中从DOM属性导入的位置吗?(2)如何以编程方式访问这些属性来对元素进行一些设置工作?
如果您已经阅读过自定义元素规范,那么在元素的生命周期中有一个名为attributeChangedCallback(name, oldVal, newVal)
的回调,它在Polymer中方便地重命名为attributeChanged(type, name)
。但是,这不是侦听属性的首选方式,而是将一个观察者附加到该属性,在本例中是在fooBar
上。
这是一个jsbin示例。您可以看到fooBarChanged
在attached
和ready
之前被首先调用。
http://jsbin.com/gibopu/edit?html,控制台,输出
相关文章:
- AngularJS:我可以跳过函数参数回调吗
- 要求未定义JS回调参数
- MeteorJS:在带有回调的vzaar api上正确使用wrapAsync
- 自引用回调
- 测试Angular Service解决错误回调中的promise
- 如何将一个JavaScript函数回调为多个函数
- JavaScript回调函数
- 用于回调的javascript参数
- 将json回调数据转换为日期
- 承诺在非节点式回调上使用Bluebird
- 如何在回调函数中执行流
- 回调函数中传递参数的困难(Google Map API Markers)
- Soundcloud Javascript SDK 3.0-回调无法读取属性'connectCallback
- 如何使用jqueryAJAX从页面中回调多个变量
- jquery Onclick函数带有导致双击的回调排序函数
- Javascript点击事件回调不起作用
- 一旦加载并渲染了角度引导typeahead,就使用回调
- 成功回调永远不会被JSONP请求调用
- 如何在内容具有content-Disposition附件时实现窗口加载回调
- 聚合物生命周期:为什么属性尚未从'附件'回调