我有两个组成部分:名单和项目,并使用<template>
设置项目渲染列表:数据与推检测策略模板结合
<chat-message-list [messages]="messages | async">
<template>
<chat-message [isTimestampVisible]="isTimestampVisible | async"></chat-message>
</template>
</chat-message-list>
而且两者列表和消息是利用推送检测策略( ChangeDetectionStrategy.OnPush
)。
之前我用<template>
设置项目渲染器isTimestampVisible
属性被正确绑定。当我使用<template>
isTimestampVisible
属性更改后不再刷新。我不想使用默认检测策略,因为我使用React获得了不可变模型。
它的工作正常,当我通过Observable
<chat-message>
而不是布尔值,但<chat-message>
是我的“哑”组件,所以它不应该收到Observable - 只是纯粹的价值。
http://plnkr.co/edit/4qUDeOBoMmUsuRsBx2w9?p=preview
如果您在message-list.ts
结合正在改变ChangeDetectionStrategy.OnPush
到ChangeDetectionStrategy.Default
。
请问当你改变成分为默认'ChangeDetectionStrategy'工作? –
是的,但没有模板,即使使用'ChangeDetectionStrategy.OnPush'也能工作。没有模板数据通过列表传递:MyComponent-> MessageList-> Message – NagRock
我想这需要一个Plunker来重现和调试。 –