【发布时间】:2017-12-29 00:13:32
【问题描述】:
我正在尝试使用这种技术intercept input property changes with a setter 将一些数据从父组件传递到子组件,并在值更改时调用子组件中的方法。我的问题是子组件通过<router-link> 绑定到父组件,当我尝试使用以下方式传递数据时:
parent_component.html:
<router-outlet [some_value] = "some_value"></router-outlet>
其中 some_value 是我尝试从父级传递给子级的参数。
parent_component.ts:
public some_value: string;
和
parent_component.ts:
@Input()
public set some_vale(number : string){
this._some_value = number;
}
但是我得到了错误
未处理的 Promise 拒绝:模板解析错误: 无法绑定到“some_value”,因为它不是“router-outlet”的已知属性。
我做错了什么?使用<router-outlet> 时,将数据从父组件传递到子组件的正确方法是什么?
在此先感谢您的帮助。
【问题讨论】:
-
到目前为止,
中还没有属性绑定,你可以使用服务来实现组件之间的通信。 -
所以根本没有办法做到这一点?
-
我认为你不能这样做。如果你想从路由器向子节点发送数据,声明一个 Service 并使用 Observable 发送你的对象。您将对声明路由器的组件执行 .next(your-object) 和 .subscribe(object => {...});在子组件上
-
不,bcs在使用属性绑定时,绑定了一个必须存在的属性,但不能确保它会存在于
中。
标签: angular angular2-routing angular-components router-outlet