當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript Store.Store類代碼示例

本文整理匯總了TypeScript中@dojo/framework/stores/Store.Store的典型用法代碼示例。如果您正苦於以下問題:TypeScript Store類的具體用法?TypeScript Store怎麽用?TypeScript Store使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了Store類的8個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: it

	it('should use store from properties when passed', () => {
		const store = new Store();
		const filterableConfig = [{ id: 'id', title: 'id', filterable: true }];
		const h = harness(() =>
			w(MockMetaMixin(Grid, mockMeta), {
				fetcher: noop,
				updater: noop,
				columnConfig: filterableConfig,
				store,
				height: 500
			})
		);

		h.expect(() =>
			v('div', { key: 'root', classes: [css.root, fixedCss.rootFixed], role: 'table', 'aria-rowcount': null }, [
				v('div', {
					key: 'header',
					scrollLeft: 0,
					classes: [css.header, fixedCss.headerFixed, css.filterGroup],
					row: 'rowgroup'
				}, [
					w(Header, {
						key: 'header-row',
						columnConfig: filterableConfig,
						sorter: noop,
						sort: undefined,
						filter: undefined,
						filterer: noop
					})
				]),
				w(Body, {
					key: 'body',
					pages: {},
					totalRows: undefined,
					pageSize: 100,
					columnConfig: filterableConfig,
					pageChange: noop,
					updater: noop,
					fetcher: noop,
					onScroll: noop,
					height: 300
				}),
				v('div', { key: 'footer' }, [
					w(Footer, {
						key: 'footer-row',
						total: undefined,
						page: 1,
						pageSize: 100
					})
				])
			])
		);

		store.apply(
			[
				{
					op: OperationType.REPLACE,
					path: new Pointer('_grid/data/pages/page-1'),
					value: [{ id: 'id' }]
				},
				{
					op: OperationType.REPLACE,
					path: new Pointer('_grid/meta'),
					value: {
						page: 10,
						sort: {
							columnId: 'id',
							direction: 'asc'
						},
						filter: {
							columnId: 'id',
							value: 'id'
						},
						total: 100
					}
				}
			],
			true
		);

		h.expect(() =>
			v('div', { key: 'root', classes: [css.root, fixedCss.rootFixed], role: 'table', 'aria-rowcount': '100' }, [
				v('div', {
					key: 'header',
					scrollLeft: 0,
					classes: [css.header, fixedCss.headerFixed, css.filterGroup],
					row: 'rowgroup'
				}, [
					w(Header, {
						key: 'header-row',
						columnConfig: filterableConfig,
						sorter: noop,
						sort: {
							columnId: 'id',
							direction: 'asc'
						},
						filter: {
							columnId: 'id',
							value: 'id'
						},
//.........這裏部分代碼省略.........
開發者ID:bryanforbes,項目名稱:widgets,代碼行數:101,代碼來源:Grid.ts

示例2: filterProcess

		it('should filter', async () => {
			const fetcherStub = stub();
			fetcherStub.returns({
				data: [{ id: '1' }],
				meta: {
					total: 10000
				}
			});
			store.apply([{ op: OperationType.REPLACE, path: new Pointer(['grid', 'meta', 'page']), value: 10 }]);
			await filterProcess(store)({ filterOptions:  { columnId: 'id', value: 'filter' }, id: 'grid', fetcher: fetcherStub });
			const pages = store.get(store.path('grid', 'data'));
			assert.deepEqual(pages, { pages: { 'page-1': [{ id: '1' }] } });
			const meta = store.get(store.path('grid', 'meta'));
			assert.deepEqual(meta, {
				currentFilter: {
					columnId: 'id',
					value: 'filter'
				},
				page: 1,
				filter: { id: 'filter' },
				fetchedPages: [1],
				isSorting: false,
				total: 10000
			});
		});
開發者ID:dojo,項目名稱:widgets,代碼行數:25,代碼來源:processes.ts

示例3:

		it('Should not fail if the page is already set', () => {
			pageChangeProcess(store)({ id: 'grid', page: 2 });
			let page = store.get(store.path('grid', 'meta', 'page'));
			assert.strictEqual(page, 2);
			pageChangeProcess(store)({ id: 'grid', page: 2 });
			page = store.get(store.path('grid', 'meta', 'page'));
			assert.strictEqual(page, 2);
		});
開發者ID:dojo,項目名稱:widgets,代碼行數:8,代碼來源:processes.ts

示例4: onRouteChange

function onRouteChange() {
	const outlet = store.get(store.path('routing', 'outlet'));
	const params = store.get(store.path('routing', 'params'));
	if (outlet) {
		const link = router.link(outlet, params);
		if (link !== undefined) {
			router.setPath(link);
		}
	}
}
開發者ID:dojo,項目名稱:examples,代碼行數:10,代碼來源:main.ts

示例5: fetcherProcess

		it('fetcher should update the page and meta data for request', async () => {
			const fetcherStub = stub();
			fetcherStub.returns({
				data: [{ id: '1' }],
				meta: {
					total: 10000
				}
			});
			await fetcherProcess(store)({ id: 'grid', page: 2, fetcher: fetcherStub, pageSize: 100 });
			const pages = store.get(store.path('grid', 'data'));
			assert.deepEqual(pages, { pages: { 'page-2': [{ id: '1' }] } });
			const meta = store.get(store.path('grid', 'meta'));
			assert.deepEqual(meta, { fetchedPages: [2], total: 10000, pageSize: 100 });
		});
開發者ID:dojo,項目名稱:widgets,代碼行數:14,代碼來源:processes.ts

示例6:

router.on('outlet', ({ outlet, action }) => {
	if (action === 'enter') {
		switch (outlet.id) {
			case 'user':
				if (outlet.isExact()) {
					getProfileProcess(store)({ username: outlet.params.username });
					fetchFeedProcess(store)({ type: 'user', page: 0, filter: outlet.params.username });
				}
				break;
			case 'favorites':
				getProfileProcess(store)({ username: outlet.params.username });
				fetchFeedProcess(store)({ type: 'favorites', page: 0, filter: outlet.params.username });
				break;
			case 'article':
				getArticleProcess(store)({ slug: outlet.params.slug });
				break;
			case 'settings':
				getUserSettingsProcess(store)({});
				break;
			case 'edit-post':
				getEditorArticleProcess(store)({ slug: outlet.params.slug });
				break;
			case 'home':
				const isAuthenticated = !!store.get(store.path('user', 'token'));
				fetchFeedProcess(store)({ type: isAuthenticated ? 'feed' : 'global', page: 0, filter: '' });
				break;
		}
	} else {
		if (outlet.id === 'edit-post') {
			clearEditorProcess(store)({});
		}
	}
});
開發者ID:dojo,項目名稱:examples,代碼行數:33,代碼來源:main.ts

示例7: sortProcess

		it('should sort', async () => {
			const fetcherStub = stub();
			fetcherStub.returns({
				data: [{ id: '1' }],
				meta: {
					total: 10000
				}
			});
			store.apply([{ op: OperationType.REPLACE, path: new Pointer(['grid', 'meta', 'page']), value: 10 }]);
			await sortProcess(store)({ columnId: 'id', direction: 'asc', id: 'grid', fetcher: fetcherStub });
			const pages = store.get(store.path('grid', 'data'));
			assert.deepEqual(pages, { pages: { 'page-9': [{ id: '1' }], 'page-10': [{ id: '1' }] } });
			const meta = store.get(store.path('grid', 'meta'));
			assert.deepEqual(meta, {
				page: 10,
				sort: { columnId: 'id', direction: 'asc' },
				fetchedPages: [10, 9],
				isSorting: false,
				total: 10000
			});
		});
開發者ID:dojo,項目名稱:widgets,代碼行數:21,代碼來源:processes.ts

示例8: updaterProcess

		it('Should update item', async () => {
			const updaterStub = stub();
			store.apply([
				{
					op: OperationType.REPLACE,
					path: new Pointer(['grid', 'data', 'pages', 'page-1']),
					value: [{ id: 'A', name: 'bill' }]
				}
			]);
			let pages = store.get(store.path('grid', 'data'));
			assert.deepEqual(pages, { pages: { 'page-1': [{ id: 'A', name: 'bill' }] } });
			await updaterProcess(store)({
				updater: updaterStub,
				columnId: 'name',
				id: 'grid',
				value: 'foo',
				page: 1,
				rowNumber: 0
			});
			pages = store.get(store.path('grid', 'data'));
			assert.deepEqual(pages, { pages: { 'page-1': [{ id: 'A', name: 'foo' }] } });
		});
開發者ID:dojo,項目名稱:widgets,代碼行數:22,代碼來源:processes.ts


注:本文中的@dojo/framework/stores/Store.Store類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。