Javascript Angular2:从父组件调用函数
我面临着一个问题,这个问题以前已经提到过,但这些解决方案如下: 我想在共享链接上举一个例子,让它更简单: 让我们开始: 首先,我在app.module.ts中有这些路线:Javascript Angular2:从父组件调用函数,javascript,angular,typescript,angular2-routing,Javascript,Angular,Typescript,Angular2 Routing,我面临着一个问题,这个问题以前已经提到过,但这些解决方案如下: 我想在共享链接上举一个例子,让它更简单: 让我们开始: 首先,我在app.module.ts中有这些路线: {path: 'dash/:project_id', component: DashProject, children: [ {path: '', component: null}, {path: 'task/form', component: TaskForm}, {path: 'task/:tas
{path: 'dash/:project_id', component: DashProject, children: [
{path: '', component: null},
{path: 'task/form', component: TaskForm},
{path: 'task/:task_id', component: TaskView}
如您所见,DashProject是我的父母,其他人是孩子。我还在DashProject的模板中包含了所需的
其中一部分包括那里的儿童
但在这个例子中,我需要包括
现在我在我的父模板中这样做:
问题:当我将
添加到父模板时,子组件已经包含到父模板中,即使它没有通过URL路由调用。当我删除该部分时,父-子组件之间的交互不再起作用。
如果我将这些添加到子模板中,我将得到一个永无止境的循环并崩溃
有人能看到我的问题或知道是什么导致了这个错误吗?我在网上看到了一些例子,比如上面的共享例子,它们都使用了类似的解决方案,但对我来说不起作用
提前谢谢
您好,yadbo看起来您可能正在合并两种不同的技术 要布线到零部件时,请使用布线。例如,发送到dash项目页面或任务表单页面。通常路由的组件没有选择器,也不会在HTML中直接引用。相反,它们出现在
中
如果要将一个组件用作另一个组件的子组件,请使用嵌套组件。例如,在项目页面中显示一组星星而不是评级。嵌套组件必须有一个选择器,该选择器在HTML中使用(如您的
示例)
使用嵌套组件时,可以使用@input和@output在父级和子级之间进行通信
使用路由组件时,您可以通过传递参数(必需、可选或查询参数)、使用共享解析程序或通过在服务中设置属性在组件之间进行通信。谢谢@DeborahK的提示,这是我丢失的 现在我正在使用一个共享服务来解决这个问题,我正在将一个回调传递给我从子节点调用的共享服务 下面是一个例子,至少是想法,它是如何工作的:
export class SharedService {
private callback:any = null;
public constructor() {
}
public getCallback() {
return this.callback;
}
public setCallback(call) {
this.callback = call;
}
}
家长:
this._shared.setCallback(this.test.bind(this));
儿童:
this._shared.getCallback()();
是的,它是有效的:)