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(),
    );
  }
}