本文整理汇总了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;
}
示例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();
});
示例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);
});
示例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);
});
示例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);
});
}
});
});
}