我正在尝试将父组件注入子组件.我认为这很简单 - 只需在子代中指定/注入父组件constructor():
constructor(private _parent:AppComponent) {} // child component constructor
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
EXCEPTION:无法解析ChildComponent(?)的所有参数.确保它们都具有有效的类型或注释.
我错过了什么?
ChildComponent:
import {Component} from 'angular2/core';
import {AppComponent} from './app.component';
@Component({
selector: 'child',
template: `<p>child</p>`
})
export class ChildComponent {
constructor(private _parent:AppComponent) {}
}
Run Code Online (Sandbox Code Playgroud)
AppComponent:
import {Component} from 'angular2/core';
import {ChildComponent} from './child.component';
@Component({
selector: 'my-app',
template: `{{title}} <child></child>
`,
directives: [ChildComponent]
})
export class AppComponent {
title = "Angular 2 - inject parent";
constructor() { console.clear(); }
}
Run Code Online (Sandbox Code Playgroud)
我是angular2的新手
<parent>
<router outlet><router outlet>
</parent>
Run Code Online (Sandbox Code Playgroud)
我在父组件中有一个按钮,如果我单击该按钮,它应该调用子组件中的方法(在路由器插座中加载.)
有没有办法从父级调用子组件(在路由器插座中)方法.
我有一个包含三个组件的应用程序.应用程序,EditView,对话框.
应用程序组件包含EditView组件,其中可以包含许多其他EditView组件和一个Dialog组件(如果页面上显示Dialog组件).
Dialog组件包含Application组件.当我把它放在声明路径中的Dialog组件中时:
directives:[Application]
Run Code Online (Sandbox Code Playgroud)
我收到这个错误:
组件"对话框"视图上的意外指令值"未定义"
是否有可能具有这样的结构,其中子组件可以包含关于某些条件的上层组件?
如果我从Dialog中删除Application组件或将其替换为其他组件,它可以正常工作.
Zlaja
我正在使用来自 @ng-bootstrap 的 NgbModal 从Angular 6 应用程序打开模态窗口。在这些模态之一中,我希望单击按钮关闭模态并激活父/启动组件中的功能。我怎样才能做到这一点?
我知道使用普通的子组件和父组件,您可以发出一个由父组件捕获的事件(请参阅此处的解决方案)。我可以用我的模态设置做一些类似的事情吗?如果没有,这里最好的方法是什么?
父级中的当前代码(简化):
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
import { ModalComponent } from "...";
@Component ( {...} )
export class ParentComponent {
...
constructor(private modalService: NgbModal) {}
...
showModal(i:InputObject) {
const modalRef = this.modalService.open(ModalCompoenent);
modalRef.componentInstance.i = i;
}
}
Run Code Online (Sandbox Code Playgroud)