anchor.diff:    /// origin, instead, you want it to be some other location in your app.
     final ViewContainerRef origin;
   
  +  /// The factory to create the component.
  +  final ComponentFactory componentFactory;
  +
     // TODO(google): Document and better explain when/when not to set origin.
     // TODO(google): Add optional `onInitialize` callback/future.
  -  ComponentPortal([this.origin]);
  -
  -  @override
  -  ComponentPortal<T> clone() => new ComponentPortal<T>(origin);
  +  ComponentPortal(this.componentFactory, {this.origin});
  +
  +  @override
  +  ComponentPortal<T> clone() =>
  +      new ComponentPortal<T>(componentFactory, origin: origin);
   
     /// The type of component that will be created.
     Type get component => T;
  
positive.code: ///     <template portalHost="portal"></template>
  @Directive(selector: '[portalHost]')
  class PortalHostDirective extends BasePortalHost {
    final SlowComponentLoader _dynamicComponentLoader;
    final ViewContainerRef _viewContainerRef;
  
    PortalHostDirective(this._dynamicComponentLoader, this._viewContainerRef);
  
    @override
    Future<ComponentRef> attachComponentPortal(ComponentPortal portal) {
  
negative.code:     if (portal.origin != null) {
        viewContainerRef = portal.origin;
      }
      final ref = _componentLoader.loadNextToLocation(
          portal.componentFactory, viewContainerRef);
      setPortalDisposer(ref.destroy);
      // TODO(google): This is no longer async remove the future if possible.
      return new Future.value(ref.instance);
    }
  
    @override
  