Angular-ngDoCheck

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Angular-ngDoCheck相关的知识,希望对你有一定的参考价值。

参考技术A

无法检测: input输入框的click
不愿意检测: 组件的更新策略设置为OnPush

假如有三个组件,他们的层级关系:
--组件A
--组件B
--组件C

默认变更检测策略 Default :
Checking A component:

Checking B component:
- update C input bindings
- call NgDoCheck on the C component
- update DOM interpolations for component B

Checking C component:
- update DOM interpolations for component C

OnPush策略 :
Checking A component:

if (bindings changed) -> checking B component:
- update C input bindings
- call NgDoCheck on the C component
- update DOM interpolations for component B

Checking C component:
- update DOM interpolations for component C

前置条件:假如组件A的数据绑定是个对象,组件B的变更检测策略是OnPush.
触发条件:当组件A中只有对象的属性值变化,那么组件B上不执行变更检测.
结果: 在组件A上执行变更检测时, 会更新(update)对组件B的数据绑定 (如果只是属性变化,即引用没有变化,不会触发组件B的ngOnChanges),然后 调用组件B的ngDoCheck (注意:是在组件A的变更检测时调用),此时可以比较老的数据和新的数据,如果发现数据有变化,调用ChangeDetectionRef实例的markForCheck()方法,触发组件B的变更检测.
ngDoCheck的作用: Angular不愿意检测组件B的变更时(组件B的OnPush),但是数据发生变化,使用ngDoCheck,可以捕获到变化,然后执行操作.

总结:

求C语言隐藏光标函数的详细解释

#include<windows.h>
voidhidecursor()

console_cursor_infocursor_info=1,0;
setconsolecursorinfo(getstdhandle(std_output_handle),&cursor_info);

函数和结构体都在windows.h中定义,函数用法简单就不说了。
console_cursor_info结构体定义如下:
typedefstruct
dworddwsize;
boolbvisible;//为0时光标不可见
console_cursor_info,*pconsole_cursor_info;
vc,mingw中均没问题。
不明白直接hi。
参考技术A typedef struct _CONSOLE_CURSOR_INFO
  DWORD dwSize; //光标的高度,控制台一行字符的高度为100,光标的高度为1到100
  BOOL bVisible; //是否显示光标,TRUE为显示,FALSE为不显示
   CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFOCONSOLE_CURSOR_INFO cursor_info = 1, 0;这一句可以看出,bVisible字段为FALSE,表示不显示光标。
GetStdHandle(STD_OUTPUT_HANDLE)这个是获取标准输出(控制台)的句柄
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);这句就是让标准输出(控制台)影藏光标。
参考技术B #include<windows.h>
voidhidecursor()

console_cursor_infocursor_info=1,0;
setconsolecursorinfo(getstdhandle(std_output_handle),&cursor_info);

函数和结构体都在windows.h中定义,函数用法简单就不说了。
console_cursor_info结构体定义如下:
typedefstruct
dworddwsize;
boolbvisible;//为0时光标不可见
console_cursor_info,*pconsole_cursor_info;
vc,mingw中均没问题。
不明白直接hi。

以上是关于Angular-ngDoCheck的主要内容,如果未能解决你的问题,请参考以下文章