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


TypeScript entity.createEntityAdapter函數代碼示例

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


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

示例1: Error

export function createEntityDefinition<T, S extends object>(metadata: EntityMetadata<T, S>): EntityDefinition<T> {
  let entityName = metadata.entityName;
  if (!entityName) {
    throw new Error('Missing required entityName');
  }
  metadata.entityName = entityName = entityName.trim();
  const selectId = metadata.selectId || defaultSelectId;
  const sortComparer = (metadata.sortComparer = metadata.sortComparer || false);

  const entityAdapter = createEntityAdapter<T>({ selectId, sortComparer });

  const entityDispatcherOptions: Partial<EntityDispatcherDefaultOptions> = metadata.entityDispatcherOptions || {};

  const initialState: EntityCollection<T> = entityAdapter.getInitialState({
    entityName,
    filter: '',
    loaded: false,
    loading: false,
    changeState: {},
    ...(metadata.additionalCollectionState || {})
  });

  const noChangeTracking = metadata.noChangeTracking === true; // false by default

  return {
    entityName,
    entityAdapter,
    entityDispatcherOptions,
    initialState,
    metadata,
    noChangeTracking,
    selectId,
    sortComparer
  };
}
開發者ID:RajeevSingh273,項目名稱:angular-ngrx-data,代碼行數:35,代碼來源:entity-definition.ts

示例2: reducer

import { PanelActions, PanelActionTypes } from '../actions/panel.actions';

import { PanelDetails, PanelListItem } from '../../shared/models';

export interface PanelState extends EntityState<PanelListItem> {
//  entities: { [id: number]: PanelListItem };
  panelsLoaded: boolean;
  panelsLoading: boolean;
  panelDetails: PanelDetails;
  panelDetailsLoading: boolean;
  panelDetailsLoaded: boolean;
}

export const adapter: EntityAdapter<PanelListItem> = createEntityAdapter<
  PanelListItem
>();

export const initialState: PanelState = adapter.getInitialState({
  //entities: {},
  panelsLoaded: false,
  panelsLoading: false,
  panelDetails: null,
  panelDetailsLoaded: false,
  panelDetailsLoading: false
});

export function reducer(
  state = initialState,
  action: PanelActions
): PanelState {
開發者ID:ArmyMusicOnline,項目名稱:ami,代碼行數:30,代碼來源:panel.reducer.ts

示例3: reducer

import { createEntityAdapter, EntityAdapter, EntityState } from '@ngrx/entity';

import * as fromOrganizations from '../actions/organization.actions';

import { Organization } from '../../shared/models';

export interface OrganizationState extends EntityState<Organization> {
  entities: { [id: number]: Organization };
  organizationsLoading: boolean;
  organizationsLoaded: boolean;
}

export const adapter: EntityAdapter<Organization> = createEntityAdapter<
  Organization
>();

export const initialState: OrganizationState = adapter.getInitialState({
  entities: {},
  organizationsLoading: false,
  organizationsLoaded: false
});

export function reducer(
  state = initialState,
  action: fromOrganizations.OrganizationActions
): OrganizationState {
  switch (action.type) {
    case fromOrganizations.OrganizationActionTypes.LoadOrganizations: {
      return {
        ...state,
        organizationsLoading: true
開發者ID:ArmyMusicOnline,項目名稱:ami,代碼行數:31,代碼來源:organization.reducer.ts

示例4: switch

import { createEntityAdapter } from '@ngrx/entity';
import { State } from '@ngrx/store';
import { ActionReducer } from '@ngrx/store';
import * as LabelActions  from './../actions/label.actions';
import { LabelUI } from './../models/label.model';
import { initialState, LabelState } from './../states/label.state';

export type Action = LabelActions.All;
const labelAdapter = createEntityAdapter<LabelUI>();

export const LabelReducer: ActionReducer<LabelState> = (state = initialState, action: Action) => {
  switch (action.type) {
    case LabelActions.GET_SUCCESS: {
      return labelAdapter.addAll(action.payload, state);
    }
    case LabelActions.GET_ERROR: {
      return state;
    }
    case LabelActions.ADD_SUCCESS: {
      return labelAdapter.addOne(action.payload, state);
    }
    case LabelActions.ADD_ERROR: {
      return state;
    }
    default: {
      return state;
    }
  }
};
開發者ID:joshuawilson,項目名稱:almighty-ui,代碼行數:29,代碼來源:label.reducer.ts

示例5: reducer

import { EntityState, EntityAdapter, createEntityAdapter } from '@ngrx/entity';

import { Article, Page } from '../../shared/models';
import { ArticlesActions, ArticlesActionTypes } from '../actions/articles';

export interface State extends EntityState<Article> {
    selectedArticleId: string | null;
    selectedArticle: Article | null;
    page: Page | null;
}

export const adapter: EntityAdapter<Article> = createEntityAdapter<Article>({
    selectId: (article: Article) => article.id,
    sortComparer: false,
});

export const initialState: State = adapter.getInitialState({
    selectedArticleId: null,
    selectedArticle: null,
    page: {
        pageSize: 8,
        pageIndex: 0,
        startIndex: 0,
        endIndex: 0
    } as Page
});

export function reducer(
    state = initialState,
    action: ArticlesActions
): State {
開發者ID:evcraddock,項目名稱:erikvancraddock.com,代碼行數:31,代碼來源:articles.ts

示例6: reducer

import { createEntityAdapter, EntityAdapter, EntityState } from '@ngrx/entity';

import { WidgetActions, WidgetActionTypes } from './widget.actions';
import { Widget } from './widget.model';

export interface State extends EntityState<Widget> {
  // additional entities state properties
  loaded: boolean;
  loading: boolean;
  selectedWidgetId: string;
}

export const adapter: EntityAdapter<Widget> = createEntityAdapter<Widget>();

export const initialState: State = adapter.getInitialState({
  // additional entity state properties
  loaded: false,
  loading: false,
  selectedWidgetId: '',
});

export function reducer(state = initialState, action: WidgetActions): State {
  switch (action.type) {
    case WidgetActionTypes.DATABASE_LISTEN_FOR_DATA_STOP: {
      return adapter.removeAll({
        ...state,
        loaded: false,
        loading: false,
        selectedWidgetId: '',
      });
    }
開發者ID:tja4472,項目名稱:ngrx-ionic-angularfire,代碼行數:31,代碼來源:widget.reducer.ts

示例7: reducer

  EntityState,
  Update
} from '@ngrx/entity';

import { Hero } from '../../models/hero';
import { HeroActions, HeroActionTypes } from '../actions/hero.actions';

export interface State extends EntityState<Hero> {
  loaded: boolean;
  loading: boolean;
  error: any;
  selectedHeroId: number;
  searchHeroes: Hero[];
}

export const adapter: EntityAdapter<Hero> = createEntityAdapter<Hero>();

export const initialState: State = adapter.getInitialState({
  loaded: false,
  loading: false,
  selectedHeroId: null,
  error: null,
  searchTerm: '',
  searchHeroes: null
});

export function reducer(state = initialState, action: HeroActions): State {
  switch (action.type) {
    case HeroActionTypes.heroGetHeroes:
    case HeroActionTypes.heroAddHero:
    case HeroActionTypes.heroDeleteHero:
開發者ID:klimentru1986,項目名稱:ngrx-toh,代碼行數:31,代碼來源:hero.reducer.ts

示例8: sortByCourseAndSeqNo

  loading:boolean;
}

function sortByCourseAndSeqNo(l1: Lesson, l2:Lesson) {
  const compare = l1.courseId - l2.courseId;
  if (compare != 0) {
    return compare;
  }
  else {
    return l1.seqNo - l2.seqNo;
  }
}

export const adapter : EntityAdapter<Lesson> =
  createEntityAdapter<Lesson>({
      sortComparer: sortByCourseAndSeqNo
  });


const initialLessonsState = adapter.getInitialState({
  loading: false
});



export function lessonsReducer(state = initialLessonsState,
                               action: CourseActions): LessonsState {

  switch(action.type) {

    case CourseActionTypes.LessonsPageCancelled:
開發者ID:mrplanktonlex,項目名稱:angular-ngrx-course,代碼行數:31,代碼來源:lessons.reducers.ts

示例9: coursesReducer

import {Course} from './model/course';
import {createEntityAdapter, EntityAdapter, EntityState} from '@ngrx/entity';
import {CourseActions, CourseActionTypes} from './course.actions';



export interface CoursesState extends EntityState<Course> {

  allCoursesLoaded:boolean;

}


export const adapter : EntityAdapter<Course> =
  createEntityAdapter<Course>();


export const initialCoursesState: CoursesState = adapter.getInitialState({
  allCoursesLoaded: false
});


export function coursesReducer(state = initialCoursesState , action: CourseActions): CoursesState {

  switch(action.type) {

    case CourseActionTypes.CourseLoaded:

      return adapter.addOne(action.payload.course, state);

    case CourseActionTypes.AllCoursesLoaded:
開發者ID:mrplanktonlex,項目名稱:angular-ngrx-course,代碼行數:31,代碼來源:course.reducers.ts

示例10: reducer

import {
  PlaylistActionTypes,
  PlaylistsAction
} from '../actions/playlist.actions';

import { VideoActions, VideoActionTypes } from '../actions/video.actions';

export interface PlaylistState extends EntityState<Playlist> {
  playlistsLoaded: boolean;
  playlistsLoading: boolean;
  playlistDetails: PlaylistDetails;
  playlistDetailsLoaded: boolean;
  playlistDetailsLoading: boolean;
}

export const adapter: EntityAdapter<Playlist> = createEntityAdapter<Playlist>();

export const initialState: PlaylistState = adapter.getInitialState({
  playlistsLoaded: false,
  playlistsLoading: false,
  playlistDetails: null,
  playlistDetailsLoaded: false,
  playlistDetailsLoading: false
});

export function reducer(
  state = initialState,
  action: PlaylistsAction | VideoActions
): PlaylistState {
  switch (action.type) {
    case PlaylistActionTypes.LoadPlaylists: {
開發者ID:ArmyMusicOnline,項目名稱:ami,代碼行數:31,代碼來源:playlist.reducer.ts


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