এটি 'টেবিল' এর পরিচিত সম্পত্তি না হওয়ায় 'ডেটাসোর্স'-এ আবদ্ধ হতে পারে না


88

কৌণিক 5 বিকাশে আমি নতুন। আমি এখানে সরবরাহিত উদাহরণটি ব্যবহার করে কৌণিক উপাদান সহ একটি ডেটা টেবিল বিকাশের চেষ্টা করছি: " https://matory.angular.io/compferences/table/exferences "।

আমি বলতে ত্রুটি পাচ্ছি getting Can't bind to 'dataSource' since it isn't a known property of 'table'.

এখানে চিত্র বর্ণনা লিখুন

সাহায্য করুন.


4
এটি নয় table, কেবল ব্যবহার করুন<mat-table #table [dataSource]...>
বাগ

4
মাদুর-টেবিল ট্যাগটি ব্যবহার করে চেষ্টা করার পরে ত্রুটিটি অদৃশ্য হয়ে যায় তবে আমি আমার টেবিলটি ভিউতে দেখতে পাই না।
রাহুল মুঞ্জাল

এটি উপাদানটি ব্যবহারের সঠিক উপায়, আপনার অন্য কোথাও অন্য সমস্যা থাকতে হবে
বাগ

আপনি mat-tableট্যাগ ব্যবহার করে আমাকে একটি কাজের উদাহরণ প্রদান করতে পারেন ?
রাহুল মুঞ্জাল

8
আপনি যে নির্বাচকটি ব্যবহার করছেন তা ভি 6 থেকে এসেছে এবং আপনি ভি 5 ইনস্টল করেছেন। আপনার
ভি

উত্তর:


123

MatTableModuleআপনার app.module's importsঅর্থ যোগ করতে মনে রাখবেন

কৌণিক 9+ এ

import { MatTableModule } from '@angular/material/table'  

@NgModule({
  imports: [
    // ...
    MatTableModule
    // ...
  ]
})

কৌণিক 9 এর চেয়ে কম

import { MatTableModule } from '@angular/material'  

@NgModule({
  imports: [
    // ...
    MatTableModule
    // ...
  ]
})

4
এটি আমার জন্য কাজ করে, বেশিরভাগ টিউটোরিয়াল টেবিল ট্যাগ ব্যবহার করে না মাদুর-টেবিল ট্যাগ।
ফুয়াহ ইয়ে কেট

4
এটি আমার জন্যও কাজ করে যখন আপনি পৃষ্ঠাটিও ব্যবহার করেন আমাদেরও একই কাজ করতে হবে, আমি মনে করি
আথিল আহমেদ

4
আমাকে এটি import { MatTableModule } from '@angular/material/table'; কাজ করতে হয়েছিল
ক্রিস গুণাওয়ার্ডেনা

4
100% @ ওয়াসিএফ আপনি যদি একটি কৌণিক উপাদানের সাথে আবদ্ধ না করতে পারেন তবে এটি বেশিরভাগ মডিউল আমদানি না করার কারণে। উপরের উত্তরটি আমার 100% সমর্থন পায়।
থিওডোর

42

@ জোটা.টলেডো থেকে থ্যাঙ্কস, আমি আমার টেবিল তৈরির সমাধান পেয়েছি। নীচের কাজের কোডটি সন্ধান করুন:

উপাদান। html

<mat-table #table [dataSource]="dataSource" matSort>
  <ng-container matColumnDef="{{column.id}}" *ngFor="let column of columnNames">
    <mat-header-cell *matHeaderCellDef mat-sort-header> {{column.value}}</mat-header-cell>
    <mat-cell *matCellDef="let element"> {{element[column.id]}}</mat-cell>
  </ng-container>

  <mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row>
  <mat-row *matRowDef="let row; columns: displayedColumns;"></mat-row>
</mat-table>

घटक.ts

import { Component, OnInit, ViewChild } from '@angular/core';
import { MatTableDataSource, MatSort } from '@angular/material';
import { DataSource } from '@angular/cdk/table';

@Component({
  selector: 'app-m',
  templateUrl: './m.component.html',
  styleUrls: ['./m.component.css'],
})
export class MComponent implements OnInit {

  dataSource;
  displayedColumns = [];
  @ViewChild(MatSort) sort: MatSort;

  /**
   * Pre-defined columns list for user table
   */
  columnNames = [{
    id: 'position',
    value: 'No.',

  }, {
    id: 'name',
    value: 'Name',
  },
    {
      id: 'weight',
      value: 'Weight',
    },
    {
      id: 'symbol',
      value: 'Symbol',
    }];

  ngOnInit() {
    this.displayedColumns = this.columnNames.map(x => x.id);
    this.createTable();
  }

  createTable() {
    let tableArr: Element[] = [{ position: 1, name: 'Hydrogen', weight: 1.0079, symbol: 'H' },
      { position: 2, name: 'Helium', weight: 4.0026, symbol: 'He' },
      { position: 3, name: 'Lithium', weight: 6.941, symbol: 'Li' },
      { position: 4, name: 'Beryllium', weight: 9.0122, symbol: 'Be' },
      { position: 5, name: 'Boron', weight: 10.811, symbol: 'B' },
      { position: 6, name: 'Carbon', weight: 12.0107, symbol: 'C' },
    ];
    this.dataSource = new MatTableDataSource(tableArr);
    this.dataSource.sort = this.sort;
  }
}

export interface Element {
  position: number,
  name: string,
  weight: number,
  symbol: string
}

app.module.ts

imports: [
  MatSortModule,
  MatTableModule,
],

4
এটি ব্যবহার করে আমি পুনরায় ব্যবহারযোগ্য টেবিল উপাদান তৈরি করতে পারি যা ডেটা অ্যারে এবং কলামনাম অ্যারে নেয়। এই উদাহরণ চেয়ে অনেক ভাল সমাধান পাওয়া যাবে material.angular.io
জেনির Harju

একই পদক্ষেপের চেষ্টা করেও সাহায্য করে না।
Signcodeindie

@ Signcodeindie- এত দেরি করা জবাবের জন্য দুঃখিত, আপনি কোন ত্রুটি পাচ্ছেন?
রাহুল মুঞ্জাল

14
  • কৌণিক কোর v6.0.2,
  • কৌণিক উপাদান, v6.0.2,
  • কৌণিক সিএলআই v6.0.0 (বিশ্বব্যাপী v6.1.2)

চলার সময় আমার এই সমস্যাটি ছিল ng test, তাই এটি ঠিক করার জন্য, আমি আমার xyz.component.spec.tsফাইলে যুক্ত করেছি :

import { MatTableModule } from '@angular/material';

এবং এটি importsবিভাগে যুক্ত করেছেন TestBed.configureTestingModule({}):

beforeEach(async(() => {
    TestBed.configureTestingModule({
      imports: [ ReactiveFormsModule, HttpClientModule, RouterTestingModule, MatTableModule ],
      declarations: [ BookComponent ],
      schemas: [ CUSTOM_ELEMENTS_SCHEMA ]
    })
    .compileComponents();
}));

উত্তরটিও এখানে পরীক্ষার জন্য। কৌণিক 7. এর জন্য
সলভ করা হয়েছে

10

যদি আপনার '@ কৌণিক / উপাদান' থেকে "আমদানি {ম্যাটবেলমডিউল};" ভাগ করা মডিউলে রয়েছে, নিশ্চিত হয়ে নিন যে আপনি এটি রফতানি করেছেন।

শেয়ারডমডিউল.টস:

import { MatTableModule } from '@angular/material' 

@NgModule({
  imports: [
    // ...
    MatTableModule
    // ...
  ],
  exports:[ MatTableModule ]
})

তারপরে আপনার কাস্টম মডিউলে যেখানে আপনি উপাদানটি সারণী ব্যবহার করে এমন উপাদানটি সংজ্ঞায়িত করেছেন:

কাস্টমমডিউল.টস:

@NgModule({
imports: [ sharedmodule ]     
})

9

কৌণিক 7 এর জন্য

আপনার টেবিলের উপাদানটি কোথায় রয়েছে তা পরীক্ষা করুন। আমার ক্ষেত্রে এটি অ্যাপ / শেয়ার্ড / টেবিল কম্পোনেন্টের মতো অবস্থিত যেখানে ভাগ করা ফোল্ডারে সমস্ত উপ উপাদান রয়েছে তবে আমি অ্যাপ.মডিউল.টসের এনজিএমডিউলগুলিতে উপাদান মডিউল আমদানি করছিলাম যা ভুল ছিল। এই ক্ষেত্রে ম্যাটিরিয়াল মডিউলটি শেয়ারড.মডিউল.টসের এনজিএমডিউলগুলিতে আমদানি করা উচিত এবং এটি কাজ করে।

কৌণিক 7 তে 'টেবিল' 'ম্যাট-টেবিল' এ পরিবর্তন করার দরকার নেই।

Angular7 - এটি 'মাদুর-টেবিল' এর পরিচিত সম্পত্তি নয় বলে 'ডেটাসোর্স'-এ আবদ্ধ হতে পারে না


5

উপাদান উদাহরণ ভুল টেবিল ট্যাগ ব্যবহার করা হয়। পরিবর্তন

<table mat-table></table>
<th mat-header-cell></th>
<td mat-cell></td>

<tr mat-header-row></tr>
<tr mat-row></tr>

প্রতি

<mat-table></mat-table>
<mat-header-cell></mat-header-cell>
<mat-cell></mat-cell>

<mat-header-row></<mat-header-row>
<mat-row></<mat-row>

2

আমি এই ত্রুটি বার্তার সাহায্যে দীর্ঘদিন ধরে আমার মাথাও ভেঙছিলাম এবং পরে আমি সনাক্ত করেছি যে আমি [ডেটাসোর্স] এর পরিবর্তে [ডেটাসোর্স] ব্যবহার করছি।


এর জন্য ধন্যবাদ! আমি একটি পশুর পদচিহ্ন কনভার্টার সঙ্গে একই সমস্যা থেকে অনলাইনে ছিল: html-to-pug.com , এটা কপি [ডেটাউত্স] ইনপুট এবং এটি রূপান্তরিত [ডেটাউত্স]
Jonathan002

0

সমস্যাটি আপনার কৌণিক উপাদানগুলির সংস্করণ, আমার একই রকম এবং আমি যখন স্থানীয় ভাষায় কৌণিক উপাদানের ভাল সংস্করণ ইনস্টল করেছি তখন আমি এটি সমাধান করেছি।

আশা করি এটিও আপনার সমাধান হয়েছে।


0

আমার ক্ষেত্রে সমস্যাটি ছিল আমি মূল মডিউলটির ঘোষণায় ডেটাসোর্সযুক্ত উপাদানগুলি রাখি নি।

NgModule({
  imports: [
    EnterpriseConfigurationsRoutingModule,
    SharedModule
  ],
  declarations: [
    LegalCompanyTypeAssignComponent,
    LegalCompanyTypeAssignItemComponent,
    ProductsOfferedListComponent,
    ProductsOfferedItemComponent,
    CustomerCashWithdrawalRangeListComponent,
    CustomerCashWithdrawalRangeItemComponent,
    CustomerInitialAmountRangeListComponent,
    CustomerInitialAmountRangeItemComponent,
    CustomerAgeRangeListComponent,
    CustomerAgeRangeItemComponent,
    CustomerAccountCreditRangeListComponent, //<--This component contains the dataSource
    CustomerAccountCreditRangeItemComponent,
  

  ],

উপাদানটিতে ডেটাসোর্স রয়েছে:

এক্সপোর্ট ক্লাস কাস্টমারঅ্যাকউন্টস্রেডিটরেঞ্জলিস্টলিস্ট কম্পোনেন্ট অননিট প্রয়োগ করে {

  @ViewChild(MatPaginator) set paginator(paginator: MatPaginator){
    this.dataSource.paginator = paginator;
  }
  @ViewChild(MatSort) set sort(sort: MatSort){
    this.dataSource.sort = sort;
  }

  dataSource = new MatTableDataSource(); //<--The dataSource used in HTML
  loading: any;
  resultsLength: any;
  displayedColumns: string[] = ["id", "desde", "hasta", "tipoClienteNombre", "eliminar"];
  data: any;

  constructor(
    private crud: CustomerAccountCreditRangeService,
    public snackBar: MatSnackBar,
    public dialog: MatDialog,
    private ui: UIComponentsService
  ) {
  }

এটি কৌণিক 9 এর জন্য


-1

MatTableModule মডিউলটি আমদানি করে রেফারেন্সের জন্য নীচে সারণী উপাদান প্রদর্শনটি সরিয়ে ফেলতে ভুলবেন না ।
ভুল বাস্তবায়ন
<table mat-table [dataSource]=”myDataArray”> ... </table>
সঠিক বাস্তবায়ন:
<mat-table [dataSource]="myDataArray"> </mat-table>


-1

যদি আপনি এখানে বর্ণিত সমস্ত কিছু চেষ্টা করে দেখে থাকেন এবং এটি কার্যকর না হয় তবে নিশ্চিত হন যে আপনিও আপনার প্রকল্পে কৌনিক উপাদান যুক্ত করেছেন। যদি তা না হয় তবে এটি যুক্ত করতে কেবল টার্মিনালে নিম্নলিখিত কমান্ডটি চালান:

ng add @angular/material

এটি সফলভাবে যুক্ত হওয়ার পরে, প্রকল্পটি সতেজ হওয়ার জন্য অপেক্ষা করুন এবং ত্রুটিটি স্বয়ংক্রিয়ভাবে চলে যাবে।


-3

দয়া করে দেখুন আপনার ডেটা সোর্স ভেরিবেলে সার্ভার থেকে ডেটা পাবেন না বা ডেটাসোর্স ডেটার প্রত্যাশিত বিন্যাসে বরাদ্দ করা হয়নি।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.