相关疑难解决方法(0)

如何将父组件注入子组件?

我正在尝试将父组件注入子组件.我认为这很简单 - 只需在子代中指定/注入父组件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)

Plunker

angular2-di angular

37
推荐指数
2
解决办法
3万
查看次数

如何从父组件调用路由器出口子组件方法

我是angular2的新手

<parent>
<router outlet><router outlet>
</parent>
Run Code Online (Sandbox Code Playgroud)

我在父组件中有一个按钮,如果我单击该按钮,它应该调用子组件中的方法(在路由器插座中加载.)

有没有办法从父级调用子组件(在路由器插座中)方法.

typescript angular

17
推荐指数
5
解决办法
7832
查看次数

Angular 2子组件指父组件

我有一个包含三个组件的应用程序.应用程序,EditView,对话框.

应用程序组件包含EditView组件,其中可以包含许多其他EditView组件和一个Dialog组件(如果页面上显示Dialog组件).

Dialog组件包含Application组件.当我把它放在声明路径中的Dialog组件中时:

directives:[Application]
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

组件"对话框"视图上的意外指令值"未定义"

是否有可能具有这样的结构,其中子组件可以包含关于某些条件的上层组件?

如果我从Dialog中删除Application组件或将其替换为其他组件,它可以正常工作.

Zlaja

angular

8
推荐指数
1
解决办法
1万
查看次数

(如何)我可以从 NgbModal 模态调用父组件函数吗?

我正在使用来自 @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)

parent-child bootstrap-modal angular

3
推荐指数
1
解决办法
3366
查看次数