4.1 依赖性注入
令牌 构建 依赖
Injector Provider Object 难。。
4.2 changeDetection
检查变化的策略:默认:全局检查,
改为onpush策略,减少全局检查的频率,大应用可以以此提高性能
(changeDetection:ChangeDetectionStrategy.OnPush)
然后在constructor中申明ChangeDetectorRef,再调用它的markDetector方法
constructor(@H_301_11@...,private cd:ChangeDetectorRef ) xx(){ @H_301_11@... this.cd,markForCheck(); }
4.3 指令
指令:组件是一种带模板的指令
指令分为结构型(Structural)指令和属性型(Attribute)指令
Renderer2 和 ElementRef
Angular不提倡直接操作DOM,这是一个危险的行为
对于DOM的操作应该通过Renderer2来进行,ElementRef可以理解为指向DOM元素的引用
drag-@H_301_11@drop 拖拽 Can't bind to 'app-draggable' since it isn't a known property @H_301_11@of 'mat-list-item'. 1. @H_301_11@If 'mat-list-item' @H_301_11@is an Angular component @H_301_11@and it has 'app-draggable' @H_301_11@input,@H_301_11@then verify that it @H_301_11@is part @H_301_11@of this @H_301_11@module. 2. @H_301_11@If 'mat-list-item' @H_301_11@is a Web Component @H_301_11@then @H_301_11@add 'CUSTOM_ELEMENTS_SCHEMA' @H_301_11@to the '@NgModule.schemas' @H_301_11@of this component @H_301_11@to suppress this message. 3. @H_301_11@To allow @H_301_11@any property @H_301_11@add 'NO_ERRORS_SCHEMA' @H_301_11@to the '@NgModule.schemas' @H_301_11@of this component. (" 'priority-emergency':item.priority===1 }" [ERROR ->][app-draggable]="true" [draggedClass]="drag-start" (click)="onItemClick()" "): ng:///TaskModule/TaskItemComponent.html@7:2 --->莫名其妙 多保存几次就好了 [app-draggable]="@H_301_11@true" [draggedClass]="'drag-start'" 不加''会认为是成员变量,找不到就是undefined