Если вы используете встроенный селектор адаптера объекта:
export const { selectIds, selectEntities, selectAll, selectTotal } = adapter.getSelectors();
Вы можете использовать их в своем компоненте:
buildings$: Observable<any> = this.store.select(selectAll);
затем в html-части:
<div *ngFor="let building of buildings$ | async">
building.name
</div>
Возвращаемые типы селекторов:
selectIds: string[] | number[]
selectEntities: Dictionary<T> (it is like a map just use: buldings[key])
selectAll: Buldings[]; (normal array of your entity type)
selectTotal: number
EDIT:
Я думаю, что ваша проблема в логике селектора. Если вы хотите получить доступ к состоянию вашей функции, вам нужно создать селектор функций, затем вы можете использовать адаптер для выбора сущностей:
//create feature selector
export const getBuildingsState= createFeatureSelector('buildings');
//select entities calling feature selector first
export const getBuildings = createSelector(
getBuildingsState,
adapter.selectAll
)
Наконец, в компоненте:
this.store.select(getBuildings)
Также ваше состояние должно выглядеть так:
export interface BuildingsState extends EntityState<Buildings> {
loading: boolean;
logged: boolean;
error: boolean;
}
export const adapter: EntityAdapter<Buildings> = createEntityAdapter<Buildings>(
{ selectId: buildings => buildings._id }
);
export const initialState: BuildingsState = adapter.getInitialState({
loading: false,
logged: true,
error: false
});