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;
}
...