1.问题:
什么是NgModule?
2.源代码:
export interface NgModule {//导出NgModule接口
/**
* Defines the set of injectable objects that are available in the injector
* 定义组建中可注入的对象集合是注射器中合法的;
* of this module.
*
* ## Simple Example
* 简单的例子
* Here is an example of a class that can be injected:
* 这儿是一个将被注入的类文件的例子
* ```
* class Greeter {//Greeter类
* greet(name:string) {//定义方法greet(name:string),传入值为string类型的,名为name的参数;
* return 'Hello ' + name + '!';//返回值是:字符串'Hello'+name+'!';
* }
* }
*
* @NgModule({//定义组件NgModule
* providers: [//提供者:Greeter类(表名这个组件是由谁提供的)
* Greeter
* ]
* })
* class HelloWorld {//定义HelloWorld类
* greeter:Greeter;//定义对象和类型:Greeter类型的greeter;
*
* constructor(greeter:Greeter) {//构造器:constructor(greeter:Greeter)传入值为Greeter类型的greeter对象;
* this.greeter = greeter;//这里传入的参数greeter就是Greeter类型的greeter;
* }
* }
* ```
*/
3.截图:
4.总结:
这里,在用到HelloWorld类中会注入Greeter类,需要在类内部用构造器 构造一下(constructor);Greeter类就是组件(因为在@NgModule中定义了);
这里总结下就是:
1.需要定义组件内容,谁是被调用者(class Greeter)
2.需要声明谁是组件(通过接口@NgModule)
3.需要声明谁是调用者(class HelloWorld)
3.1.调用者内部要构造一下(constructor)
(其它的内容请看下回分解)