当我将值传递给聚合物元素属性时,我可以通过Polymer的数据绑定传递一个对象.但是,如果我决定离开"polymer-land"并想要将属性设置为对象,我就不能.我应该将对象传递给属性吗?
如果答案是"不,你应该使用方法",那么后续问题就是"我可以在不在Polymer框架中调用元素的方法吗?" 例如,如果我有一个Polymer元素:
<hello></hello>
Run Code Online (Sandbox Code Playgroud)
我想访问一个名为"world"的方法.在Polymer中,它将是:
this.$.hello.world();
Run Code Online (Sandbox Code Playgroud)
是否可以在不使用Polymer元素定义的情况下调用此方法?
正如您所指出的,在Polymer内部,可以使用数据绑定将对象绑定到已发布的属性:
<polymer-element name="other-el">
<template>
<hello-world persons="{{persons}}"></hello-world>
</template>
<script>
Polymer('other-el', {
created: function() {
this.persons = [{'name': 'Eric'}, {'name': 'Bob'}];
}
});
</script>
</polymer-element>
Run Code Online (Sandbox Code Playgroud)
从Polymer外部,如果提示属性类型,Polymer元素还支持属性的序列化数组/对象:
<hello-world persons="[{'name': 'Eric'}, {'name': 'Bob'}]"></hello-world>
Run Code Online (Sandbox Code Playgroud)
因为.persons是元素的属性,你也可以在JS中设置它:
document.querySelector('hello-world').persons = [{'name': 'Eric'}, {'name': 'Bob'}];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1823 次 |
| 最近记录: |