bindDirectiveOutputs function

void bindDirectiveOutputs(
  1. List<Binding> outputs,
  2. ProviderSource directiveInstance,
  3. CompileElement compileElement
)

Implementation

void bindDirectiveOutputs(
  List<ir.Binding> outputs,
  ProviderSource directiveInstance,
  CompileElement compileElement,
) {
  var view = compileElement.view!;
  var converter = BoundValueConverter.forView(view);
  for (var output in outputs) {
    var handlerExpr = converter
        .scopeNamespace()
        .convertSourceToExpression(output.source, output.target.type)!;
    var nodeReference = view.createSubscription(
      isMockLike: (output.target as ir.DirectiveOutput).isMockLike,
    );
    view.addEventListener(
        nodeReference, output, handlerExpr, directiveInstance.build());
  }
}