本文整理匯總了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);
});