Polymer:如何将子对象作为绑定传递给自定义元素

时间:2015-12-30 08:28:40

标签: polymer polymer-starter-kit

假设我创建了一个自定义元素,如下所示:

<chat-container messages="{{ messages }}"></chat-container>

messages是一个包含与任何特定线程或联系人相关的聊天消息的数组。

现在,在我的app.js中,我有这种消息数组,其中包含线程标识符的所有消息。如何将与任何特定线程标识符(即name ='Rajat')相关的消息传递给<chat-container>元素?我已经尝试了几乎所有的组合,但仍然没有任何意义。

 app.messages =  [
     {name: 'Rajat', messages: [{id: 1,message: 'Hello'},{id: 3,message: 'Hello 2'}]},
     {name: 'Himesh', messages: [{id: 2,message: 'Hello'}]},
     {name: 'David', messages: [{id: 4,message: 'Hello'}]}
    ]

我试着这样做:

<chat-container messages="{{ app.messages.filter(function(e) { return e.name === 'Rajat'; })[0].messages }}"></chat-container>

它不起作用。

1 个答案:

答案 0 :(得分:1)

聚合物不支持这种复杂的结合表达。将过滤器代码移动到一个函数并从绑定表达式调用该函数。绑定表达式仅支持.``!()

<chat-container messages="{{filter('name', 'Rajat')}}"></chat-container>

其中父元素具有名为filter()

的函数