0

我有一个深层嵌套的数组如下

mainarray[]:{
array1[]:{sub1_array1[]:{},sub2_array1:{}},
array2[]
... // and so on
}

因为我在 init 上检索主数组,我如何推送 sub2_array1 更新的值?但由于在更改视图呈现和 ui 状态更改,包括一些活动的类组件。那我该如何维持呢?我读了一些关于pipeschangedetectorRef不知道如何使用它的东西?提前致谢。

4

1 回答 1

2

您的数组/对象出了点问题。并tsc抱怨它。请检查https://stackoverflow.com/a/37824284/1267942

pipes很活泼,和 and没有关系changedetectorRef,你只需要正确声明你的模型。

更新:这里有几件事:

  1. 正确的父子组件交互方式https://angular.io/docs/ts/latest/cookbook/component-communication.html#

  2. 具有多个嵌套组件的通用数据模型:

在父组件中声明一个类成员,比如

model: Array<string> = [];

在模板中使用双向绑定将其传递给子组件

<child-component [(modelInChild)]="model"></child-component>

在子模型变量中应声明为

@Input() modelInChild: Array<string> = [];

然后你可以以同样的方式将变量进一步传递给孩子的孩子。

使用这种方法,您将model在整个组件树中拥有公共数据。但是,不推荐这种方法:它很慢,很难跟踪 a 的值model等。

  1. 组件可以将自己用作子组件。我还没有尝试过这种方法,但是javascript 中的 Angular2 递归模板看起来很有前途。

  2. 对于Collapsible组件检查Angular 2 阅读更多指令

于 2016-06-15T23:40:53.183 回答