CommonModule  功能:ngIF  NgFor

FormsModule 功能: [(ngModel)]

我应该导入BrowserModule还是CommonModule

几乎所有要在浏览器中使用的应用的根模块AppModule)都应该从@angular/platform-browser中导入BrowserModule

BrowserModule提供了启动和运行浏览器应用的那些基本的服务提供商。

BrowserModule还从@angular/common中重新导出了CommonModule,这意味着AppModule中的组件也同样可以访问那些每个应用都需要的Angular指令,如NgIfNgFor

在其它任何模块中都不要导入BrowserModule 特性模块惰性加载模块应该改成导入CommonModule。 它们需要通用的指令。它们不需要重新初始化全应用级的提供商。

如果你在惰性加载模块中导入BrowserModule,Angular就会抛出一个错误。

特性模块中导入CommonModule可以让它能用在任何目标平台上,不仅是浏览器。那些跨平台库的作者应该喜欢这种方式的。

https://angular.cn/docs/ts/latest/cookbook/ngmodule-faq.html#!#q-what-to-import

 

 

 

2.差異

forChild 給  配置惰性加载模块的路由。

forRoot   配置 根模块 的路由。

3.service provider

 

   1.NgModule 中的提供商是被注册到根注入器的。这意味着任何注册到 NgModule 上的提供商都可以被整个应用访问到
    2.另一方面,注册到应用组件上的只在该组件及其各级子组件中可用。

4. @Injectable()标志着一个类可以被一个注入器实例化

5.@optional  可選依賴

可选依赖

HeroService需要一个Logger,但是如果想不提供 Logger 也能得到它,该怎么办呢? 可以把构造函数的参数标记为@Optional(),告诉 Angular 该依赖是可选的:

import { Optional } from '@angular/core';
constructor(@Optional() private logger: Logger) {
  if (this.logger) {
    this.logger.log(some_message);
  }
}

6.route Snapshot

 

RouterState與RouterStateSnapshot

當我們進行導航的時候,在跳轉完成之後,路由會創建一個RouterStateSnapshot(含義為:路由狀態快照---譯者註)實例。那麼什麼是RouterStateSnapshot呢?它與RouterState有什麼區別呢?

RouteStateSnapshot是一個不可變數據結構,代表瞭路由在某一個特定時刻的狀態。任何時候,隻要增加、刪除瞭組件,或者參數發生瞭改變,就會創建一個新的快照。

7.在ngoninit 每次更新route的service 取得params

要this.route.params.forEach(params=>{let username=params['username']})

8.

CanDeactivate表示:在使用者離開該路徑前的判斷,剛好跟CanActivate觸發時機相反。
用途:文章編輯一半離開沒存,問是否要離開

9.resolve

Resolve

这跟Angular1中ui-router库的resolve类似,就是用来在打开一个页面之前先获取数据,而不是进入页面以后再加载。这个接口中的方法,可以返回任意的对象,也可以返回一个Promise,或者Observable

 

如果在一个路径上同时设置了CanActivateResolve,首先CanActivate接口的方法会被执行,当这个路由可以被激活时,Resolve接口的方法才会被执行。

http://codin.im/2016/11/12/angular2-route-2-guard-resolve/

 

10.inclludes  javascript

檢查一個字符串包含"world" 

var str = "Hello world, welcome to the universe.";
var n = str.includes("world");

n的結果將是:

true
11.
pure impure pipe
https://www.youtube.com/watch?v=LCBRS_VMsxA
impure當資料變動會持續刷新
pure不為所動
12.
var log = console.log.bind(console);
arrow
arrow
    全站熱搜

    學習程式 發表在 痞客邦 留言(0) 人氣()