【发布时间】:2017-12-25 04:00:32
【问题描述】:
在一个组件中如何进行双向数据绑定,例如:
当我在各自的方法中设置或取消设置 dataitem.isSelected 时,我希望按钮的文本自动切换
这里是channelstab.component.ts的代码
@Component({
selector: 'channels-tab',
template: `
<ListView [items]="channels$ | async" class="list-group">
<ng-template let-dataitem="item">
<Button [text]="dataitem.isSelected?'UnFollow':'follow'" (tap)="dataitem.isSelected?unfollow(dataitem):follow(dataitem)"></Button>
</ng-template>
</ListView>
`,
changeDetection: ChangeDetectionStrategy.OnPush
})
export class ChannelsTabComponent implements OnInit {
public channels$: Observable<any>;
ngOnInit() {
this.channels$ = <any>this.someService.get('channels');
}
unfollow(dataitem) {
dataitem.isSelected = false;//not working
}
follow(dataitem) {
dataitem.isSelected = true;//not working
}
}
【问题讨论】:
-
这些函数是在哪里定义的?
-
在同一个组件中,更新了代码以包含其他部分。
-
尝试删除这个
let-dataitem="item",它应该从组件的上下文中读取dataitem -
将 ChangeDetectionStrategy 从 OnPush 更改为 Default 似乎已经解决了问题
标签: angular data-binding angular2-nativescript