本文整理汇总了TypeScript中@dojo/widget-core/Registry.Registry类的典型用法代码示例。如果您正苦于以下问题:TypeScript Registry类的具体用法?TypeScript Registry怎么用?TypeScript Registry使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Registry类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: it
it('should register store with default key `state`', () => {
const registry = new Registry();
const store = new Store();
const returnedRegistry = registerStoreInjector(store, { registry });
assert.strictEqual(registry, returnedRegistry);
const item = registry.getInjector<Store>('state');
assert.strictEqual(item!.injector(), store);
});
示例2: test
test('registerRouterInjector', () => {
const registry = new Registry();
const router = registerRouterInjector([{ path: 'path', outlet: 'path' }], registry, {
HistoryManager: MemoryHistory
});
const { injector, invalidator } = registry.getInjector('router')!;
assert.isNotNull(injector);
assert.strictEqual(injector(), router);
const invalidatorSpy = spy(invalidator, 'emit');
router.emit({ type: 'navstart' });
assert.isTrue(invalidatorSpy.calledOnce);
});
示例3: test
test('registerRouterInjector', () => {
let invalidateCalled = false;
const registry = new Registry();
const router = registerRouterInjector([{ path: 'path', outlet: 'path' }], registry, {
HistoryManager: MemoryHistory
});
const injector = registry.getInjector('router') as Injector;
assert.isNotNull(injector);
assert.strictEqual(injector.get(), router);
injector.on('invalidate', () => {
invalidateCalled = true;
});
router.emit({ type: 'navstart' });
assert.isTrue(invalidateCalled);
});
示例4: registerRouterInjector
export function registerRouterInjector(
config: RouteConfig[],
registry: Registry,
options: RouterInjectorOptions = {}
): Router {
const { key = 'router', ...routerOptions } = options;
if (registry.hasInjector(key)) {
throw new Error('Router has already been defined');
}
const router = new Router(config, routerOptions);
registry.defineInjector(key, (invalidator: () => void) => {
router.on('navstart', () => invalidator());
return () => router;
});
return router;
}
示例5: registerRouterInjector
export function registerRouterInjector(
config: RouteConfig[],
registry: Registry,
options: RouterInjectorOptions = {}
): Router {
const { key = 'router', ...routerOptions } = options;
if (registry.hasInjector(key)) {
throw new Error('Router has already been defined');
}
const router = new Router(config, routerOptions);
const injector = new Injector(router);
router.on('navstart', () => {
injector.emit({ type: 'invalidate' });
});
registry.defineInjector(key, injector);
return router;
}
示例6: StoreContainer
it('Should always render a container', () => {
let invalidateCounter = 0;
class Foo extends WidgetBase {}
class FooContainer extends StoreContainer(Foo, 'state', { getProperties: () => {} }) {
invalidate() {
invalidateCounter++;
}
}
const fooContainer = new FooContainer();
registry.defineInjector('state', new StoreInjector(store));
fooContainer.__setProperties__({});
assert.strictEqual(invalidateCounter, 1);
fooContainer.__setProperties__({});
assert.strictEqual(invalidateCounter, 2);
fooContainer.__setProperties__({});
assert.strictEqual(invalidateCounter, 3);
fooContainer.__setProperties__({});
assert.strictEqual(invalidateCounter, 4);
});