typescript – Angular2将父服务注入子级
发布时间:2020-12-17 06:51:16 所属栏目:安全 来源:网络整理
导读:鉴于我有简单的应用程序组件: import {Component} from 'angular2/core';import {bootstrap} from 'angular2/platform/browser';import {AppComponent} from 'ng2-easy-table/app/app.component';import {ConfigService} from "./config-service";@Componen
|
鉴于我有简单的应用程序组件:
import {Component} from 'angular2/core';
import {bootstrap} from 'angular2/platform/browser';
import {AppComponent} from 'ng2-easy-table/app/app.component';
import {ConfigService} from "./config-service";
@Component({
selector: 'app',directives: [AppComponent],providers: [ConfigService],template: `
<ng2-table [configuration]="configuration"></ng2-table>
`
})
export class App {
constructor(private configuration:ConfigService) {}
}
bootstrap(App,[]);
和ng2-table,它通过npm install安装,并放在node_modules目录中. import {Component,OnInit,Input} from 'angular2/core';
@Component({
selector: 'ng2-table',})
export class AppComponent implements OnInit{
@Input configuration;
constructor() {
console.log("configuration: ",this.configuration); // <-- null
}
ngOnInit() {
console.log("configuration: ",this.configuration); // <-- null
}
}
和这个配置服务: import {Injectable} from "angular2/core";
@Injectable()
export class ConfigService {
public searchEnabled = true;
public orderEnabled = true;
public globalSearchEnabled = true;
public footerEnabled = false;
public paginationEnabled = false;
public exportEnabled = true;
public resourceUrl = "http://beta.json-generator.com/api/json/get/E164yBM0l";
}
在app组件中我放了ng2-table组件. ng2-table和app是root组件,所以我不允许使用@Input()(这就是为什么[configuration] =“configuration”不起作用的原因(遵循这个答案https://stackoverflow.com/a/33155688/1168786).问题是 – 我怎么办从app组件向ng2-table组件注入一些服务,但不使用@Input(). 这是组件链接:https://github.com/ssuperczynski/ng2-easy-table/tree/master/app 解决方法
@Input配置中的@Input;缺少()它应该是
@Input() configuration; 我将您的代码复制到Plunker并添加()修复它. Plunker example (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
