【发布时间】:2015-06-08 13:39:26
【问题描述】:
我正在开发一个 Angular 2 (alpha 26) 应用程序。我正在尝试安排成合理的组件和子组件,但在绑定时遇到了麻烦。
我有一个 Singleton 模型(我们称之为 AppModel),我将它从我的 App 组件成功注入到我的第一个子组件 (ItemBrowser) 的构造函数中。
我希望子组件 (ItemEditor) 能够查看并反映对 AppModel.selectedItem 的更改。这可以是 App 或 ItemBrowser 的子组件。
目前,我尝试什么并不重要,对 AppModel.selectedItem 的更改仅显示在 ItemBrowser 中(当前正在对 AppModel.selectedItem 进行更改)。似乎模型更改没有传播到子组件,我不知道如何强制进行刷新。
我意识到这是最前沿的,非常感谢任何帮助。
我尝试将模型作为属性传递,但我可能会尝试它只是不绑定:
<item-browser [selectedItem]="AppModel.selectedItem"></item-browser>
也许我只是缺少一个导入。到目前为止是:
import {Component, bootstrap, View, NgFor, NgIf, DEFAULT, Injector, LifecycleEvent, onChange, EventEmitter } from "angular2/angular2";
[更新]
解决方案是将共享模型注入子组件的构造函数中,关键包括@Parent()注解:
export class ItemEditor{
appModel: AppModel;
constructor(@Parent() appModel: AppModel) {
this.appModel = appModel;
}
}
【问题讨论】:
标签: angular typescript1.5