bindDirectiveHostProps function
Implementation
void bindDirectiveHostProps(
ir.MatchedDirective directive,
CompileElement compileElement,
) {
if (!directive.hasHostProperties) {
return;
}
o.Expression detectHostChanges;
if (directive.isComponent) {
detectHostChanges = compileElement.componentView!.callMethod(
'detectHostChanges',
[DetectChangesVars.firstCheck],
);
} else {
final directiveInstance =
unwrapDirectiveInstance(directive.providerSource!.build());
if (directiveInstance == null) {
return;
}
detectHostChanges = directiveInstance.callMethod(
'detectHostChanges',
[
compileElement.component != null
? compileElement.componentView!
: o.THIS_EXPR,
compileElement.renderNode.toReadExpr(),
],
);
}
compileElement.view!.detectChangesRenderPropertiesMethod.addStmt(
detectHostChanges.toStmt(),
);
}