我试图找出允许组合元素的最佳方法,而无需创建主机元素。在我的例子中,我有一个"客户"与外部API接口以发送和接收聊天消息的元素,以及" my-conversation"用作UI的元素。
/ Slim
template is="dom-bind"
twilio-ipm-client token="secret" api="{{client}}"
my-conversation client="[[client]]"
twilio-api-client
提供my-conversation
可以使用的可替换接口。目前,我通过将api
属性设置为自身来公开客户端API:
# CoffeeScript
Polymer
is: "twilio-ipm-client"
properties:
api:
type: Object
notify: true
value: -> this
这让我做了我想做的一切,但有一些棘手的事情,比如我必须致电this.set("api.messages", messages)
my-conversation
来接收正确的事件。
以这种方式组合元素让我可以轻松配置它们,否则我必须在父级上设置很多属性(此处未显示),只将每个属性传递给twilio-ipm-client
。父界面必须扩展以处理孩子。
聚合物中有更好的方法吗?