当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript Container.createChild方法代码示例

本文整理汇总了TypeScript中aurelia-dependency-injection.Container.createChild方法的典型用法代码示例。如果您正苦于以下问题:TypeScript Container.createChild方法的具体用法?TypeScript Container.createChild怎么用?TypeScript Container.createChild使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在aurelia-dependency-injection.Container的用法示例。


在下文中一共展示了Container.createChild方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。

示例1: createController

// creates a controller given a html template string and a viewmodel instance.
function createController(template, viewModel, viewsRequireLifecycle?: boolean) {
  let childContainer = container.createChild();

  let viewFactory = viewCompiler.compile(template);

  if (viewsRequireLifecycle !== undefined) {
    for (let id in viewFactory.instructions) {
      let targetInstruction = viewFactory.instructions[id];
      for (let behaviorInstruction of targetInstruction.behaviorInstructions) {
      if (behaviorInstruction.attrName === 'repeat') {
        behaviorInstruction.viewFactory._viewsRequireLifecycle = viewsRequireLifecycle;
      }
      }
    }
  }

  let metadata = new HtmlBehaviorResource();
  function App() {
    //
  }
  metadata.initialize(childContainer, App);
  metadata.elementName = metadata.htmlName = 'app';

  let controller = metadata.create(childContainer, BehaviorInstruction.dynamic(host, viewModel, viewFactory));
  controller.automate();

  viewSlot.removeAll();
  viewSlot.add(controller.view);

  return controller;
}
开发者ID:aurelia,项目名称:templating-resources,代码行数:32,代码来源:repeat-integration.spec.ts

示例2: it

 it('should not create new child Container if "childContainer" is provided', async done => {
   const settings = { childContainer: container.createChild() };
   spyOn(container, 'createChild').and.callThrough();
   spyOn(settings.childContainer, 'invoke').and.callThrough();
   await _success(() => dialogService.open(settings), done);
   expect(container.createChild).not.toHaveBeenCalled();
   expect(settings.childContainer.invoke).toHaveBeenCalled();
   done();
 });
开发者ID:HIRANO-Satoshi,项目名称:dialog,代码行数:9,代码来源:dialog-service.spec.ts

示例3: it

 it('createForCurrentScope', () => {
   const container = new Container();
   const standardValidator = {};
   container.registerInstance(Validator, standardValidator);
   const childContainer = container.createChild();
   const factory = childContainer.get(ValidationControllerFactory);
   const controller = factory.createForCurrentScope();
   expect(controller.validator).toBe(standardValidator);
   expect(container.get(Optional.of(ValidationController))).toBe(null);
   expect(childContainer.get(Optional.of(ValidationController))).toBe(controller);
   const customValidator = {};
   expect(factory.createForCurrentScope(customValidator).validator).toBe(customValidator);
 });
开发者ID:doktordirk,项目名称:validation,代码行数:13,代码来源:validation-controller-factory.ts

示例4: it

        it('should return the key from the parent container when present', () => {
            var sut = new Parent("test"),
                parent = new Container(),
                childContainer = parent.createChild(),
                instance = {},
                wrongInstance = {};

            parent.registerInstance("test", instance);
            childContainer.registerInstance("test", wrongInstance);

            var result = sut.get(childContainer);

            expect(result).toBe(instance);
            expect(result).not.toBe(wrongInstance);
        });
开发者ID:behzad888,项目名称:DefinitelyTyped,代码行数:15,代码来源:metadata.spec.ts

示例5: show

  show(settings: TooltipSettings) {
    const { _container: container } = this;
    const { target, model, viewModel: tempViewModel } = settings;
    const viewModel = Origin.get(tempViewModel).moduleId;

    let host = this._renderer.getContainer();
    let instruction: CompositionContext = {
      container: this._container,
      bindingContext: {},
      overrideContext: {},
      viewResources: null,
      childContainer: this._container.createChild(),
      model: model,
      viewModel: settings.viewModel,
      viewSlot: new ViewSlot(host, true)
    };

    this._viewModel = viewModel;
    this._model = model;

    return _getViewModel(instruction, this._compositionEngine).then(returnedInstruction => {
      this._showing = invokeLifecycle(viewModel, 'canActivate', model);
      this._viewSlot = returnedInstruction.viewSlot;

      return invokeLifecycle(instruction.viewModel, 'canActivate', instruction.model)
      .then((canActivate: boolean) => {
        if (canActivate) {
          this._compositionEngine.compose(returnedInstruction)
            .then(controller => {
              this._renderer._element = host;
              this._renderer._viewSlot = returnedInstruction.viewSlot;
              this._renderer.show(settings.target);
            });
        }
      });
    });
  }
开发者ID:Thanood,项目名称:monterey,代码行数:37,代码来源:tooltip-service.ts


注:本文中的aurelia-dependency-injection.Container.createChild方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。