Polymer 如何将所需属性传递给元素构造函数
我有一个像这样的聚合物自定义元素Polymer 如何将所需属性传递给元素构造函数,polymer,Polymer,我有一个像这样的聚合物自定义元素 <script src="http://www.polymer-project.org/platform.js"></script> <script src="http://www.polymer-project.org/polymer.js"></script> <polymer-element name="my-foo" constructor="MyFoo" attributes="controlle
<script src="http://www.polymer-project.org/platform.js"></script>
<script src="http://www.polymer-project.org/polymer.js"></script>
<polymer-element name="my-foo" constructor="MyFoo" attributes="controller" noscript>
<template>
hello from {{options.name}}
</template>
<script>
Polymer({
get options() {
return this.controller.options;
}
});
</script>
</polymer>
<div id="container"></div>
<script>
document.addEventListener('polymer-ready',function() {
var foo = new MyFoo();
foo.controller = {
options : {
name : "here"
}
};
document.body.appendChild(foo);
});
</script>
但我无法设置导致错误的属性“controller”:
Uncaught TypeError: Cannot read property 'options' of undefined.
当然-我可以修改聚合物组件中的选项getter,使其具有故障安全性,如下所示:
...
get options() {
return this.controller ? this.controller.options : null;
}
...
但在这种情况下,自定义元素也无法识别应用的数据
最后一个问题:如何将所需属性传递给自定义元素构造函数?一个解决方案是使用计算属性:
您好,来自{{options.name}
聚合物({
计算:{
选项:“控制器。选项”
}
});
document.addEventListener('polymer-ready',function(){
var foo=new MyFoo();
文件.body.appendChild(foo);
foo.controller={
选项:{
姓名:“这里”
}
}
});
foo.controller=options如何代码>?类型错误由元素构造函数吐出。。。换句话说,你的想法有点像,mpfffhh,naja…然后,你倒下去,摆好一把小小提琴来重现这个问题。@Sprottenwels:给你/Sehr-gern:
...
get options() {
return this.controller ? this.controller.options : null;
}
...