Angular 7 Не удается выполнить привязку после использования отложенной загрузки

Я получил ошибку:

Can't bind to 'dataSource' since it isn't a known property of 'table'. ("][dataSource] = "ordersList" matSort class = "table table-bordered mat-elevation-z8 material-table">

и другие ошибки последовательности, подобные приведенным выше, после того, как я реализовал ленивую загрузку:

Это мой код: app.module.ts

imports: [
    BrowserModule,
    AppRoutingModule,
    ReactiveFormsModule,
    BrowserAnimationsModule,
    HttpClientModule,
    FormsModule,
    AppRoutingModule,

приложение-routing.module.ts

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

const routes: Routes = [
  { path: 'orders', loadChildren: './orders/orders.module#OrdersModule' },
  { path: '', redirectTo: '/orders', pathMatch: 'full' }

];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule { }

заказы-routing.modules.ts

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { OrdersListComponent } from '../JobOrder/orders-list/orders-list.component';

const routes: Routes = [
  {
    path: '',
    component: OrdersListComponent
  }
];

@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule]
})
export class OrdersRoutingModule { }

Orders.module.ts

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';

import { OrdersRoutingModule } from './orders-routing.module';
import { OrdersListComponent } from '../JobOrder/orders-list/orders-list.component';

@NgModule({
  declarations: [OrdersListComponent],
  imports: [
    CommonModule,
    OrdersRoutingModule
  ]
})
export class OrdersModule { }

заказы-list.component.ts

import { GetAllOrdersService } from './../../Services/JobOrder/get-all-orders.service';
import { Component, OnInit, ViewChild } from '@angular/core';
import { ToastrService } from 'ngx-toastr';
import { MatTableDataSource, MatSort } from '@angular/material';

@Component({
  selector: 'app-orders-list',
  templateUrl: './orders-list.component.html',
  styleUrls: ['./orders-list.component.css']
})
export class OrdersListComponent implements OnInit {
  ordersList: MatTableDataSource<any>;
  displayColumns: string[] = ['id', 'jobOrderStats', 'customerNameTxt', 'untMdlTxt', 'mobileTxt', 'wrty', 'wrtyDate', 'workshopName', 'createDate', 'actions'];
  @ViewChild(MatSort) sort: MatSort;
  constructor(private _getAllOrdersService: GetAllOrdersService, private _toastr: ToastrService) { }

  ngOnInit() {
    this._getAllOrdersService.GetAllOrders().subscribe(r => {
      if (r["code"] === "200") {
        this.ordersList = r["result"];
        this.ordersList.sort = this.sort;
      }
      else {
        this._toastr.error("Error occurred " + r["result"]);
      }
    });
  }

}

Ошибка, которую я получил в консоли:

ERROR Error: Uncaught (in promise): Error: Template parse errors: Can't bind to 'dataSource' since it isn't a known property of 'table'. ("][dataSource] = "ordersList" matSort class = "table table-bordered mat-elevation-z8 material-table">

Обновление вопроса!!

Когда я получил сообщение об ошибке:

The pipe 'dateFormat' could not be found

Я объявил общий модуль:

import { DateFormatPipe } from './../../Pipes/date-format.pipe';
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';

import { SharedRoutingModule } from './shared-routing.module';
import { ModuleWithProviders } from '@angular/compiler/src/core';

@NgModule({
  imports: [
    CommonModule,
    SharedRoutingModule,
  ],
  declarations: [DateFormatPipe],

  exports: [DateFormatPipe]
})
export class SharedModule {

}

а затем я добавляю его в модуль импорта заказов:

import { SharedModule } from './../Modules/shared/shared.module';
import { DateFormatPipe } from './../Pipes/date-format.pipe';
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';

import { OrdersRoutingModule } from './orders-routing.module';
import { OrdersListComponent } from '../JobOrder/orders-list/orders-list.component';
import { QuillModule } from 'ngx-quill';
import { MatTableModule, MatPaginatorModule, MatSortModule, MatInputModule, MatDialogModule, MatFormFieldModule, MatCheckboxModule } from '@angular/material';
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';

@NgModule({
  declarations: [OrdersListComponent],
  imports: [
    CommonModule,
    OrdersRoutingModule,
    QuillModule,
    MatTableModule,
    MatPaginatorModule,
    MatSortModule,
    MatInputModule,
    MatDialogModule,
    MatFormFieldModule,
    MatCheckboxModule,
    NgbModule,
    SharedModule
  ],
  exports: []
})
export class OrdersModule { }
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
2
0
865
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Поскольку вы используете таблицу материалов, вы должны импортировать MatTableModule в AppModule или в модуль, где объявлен ваш компонент.

@NgModule({
  imports: [
    MatTableModule
    ...
  ]
})
public class AppModule

А трубы? это дает мне следующее: не удалось найти канал «dateFormat»

Fares Ayyad 28.05.2019 13:42

pipe также необходимо добавить в объявления stackoverflow.com/questions/42576420/…

Sajeetharan 28.05.2019 13:45

я добавляю его, чтобы он дал следующее: Неожиданный канал «DateFormatPipe», импортированный модулем «AppModule». Пожалуйста, добавьте аннотацию @NgModule.

Fares Ayyad 28.05.2019 13:52

импортировать SharedModule в модуль заказов

Sajeetharan 28.05.2019 14:12

взгляните на последний блок кода:

Fares Ayyad 28.05.2019 14:16

Другие вопросы по теме