Tidak dapat mengikat ke 'ngForOf' karena ini bukan properti yang diketahui dari 'tr' (rilis final)


129

Saya menggunakan rilis Angular2 Final (2.1.0). Saat saya ingin menampilkan daftar perusahaan, saya mendapat error ini.

di file.component.ts:

public companies: any[] = [
    { "id": 0, "name": "Available" },
    { "id": 1, "name": "Ready" },
    { "id": 2, "name": "Started" }
];

di file.component.html:

<tbody>
  <tr *ngFor="let item of companies; let i =index">
     <td>{{i}}</td>
     <td>{{item.name}}</td>
  </tr>
</tbody>

9
pastikan Anda tidak melakukan kesalahan ketik juga ngformemberikan kesalahan yang Anda sebutkan. SeharusnyangFor
Piotr Kula

angular juga peka huruf besar / kecil.
Iftikhar Ali Ansari

Jawaban:


241

Tambahkan BrowserModuleke imports: []dalam @NgModule()jika modul root ( AppModule), jika tidak CommonModule.

// older Angular versions
// import {BrowserModule, CommonModule} from '@angular/common';

import { BrowserModule } from '@angular/platform-browser'
..
..
@NgModule({
  imports: [BrowserModule, /* or CommonModule */],
  ..
})

2
ya, saya memiliki beberapa Modul. Saya lupa ini. Ini bekerja sekarang :) terima kasih
Mourad Idrissi

4
Mungkin perlu disebutkan bahwa CommonModule terletak di '@ angular / common' sehingga Anda harus memastikan untuk menambahkan impor {CommonModule} dari '@ angular / common'
knsheely

4
Saya memiliki masalah serupa. aplikasi saya memiliki beberapa modul, pernyataan modul Browser impor perlu ditambahkan di modul aplikasi dan di modul lain.
ssmsnet

1
Saya memiliki banyak modul. Itu menyelamatkan hariku. Terima kasih!
fabricioflores

1
terkadang itu bisa menjadi kesalahan ketik sederhana, kesalahan yang sama terjadi saat melakukan "* ngFor =" biarkan penumpang atau penumpang "<--- pemberitahuan:" atau "harus" dari ";-)
michabbb

44

Dalam kasus saya, masalahnya adalah rekan tim saya menyebutkan *ngfordalam template, bukan *ngFor. Aneh bahwa tidak ada kesalahan yang benar untuk menangani masalah ini (In Angular 4).


baik itu bisa melempar saya untuk satu lingkaran;)
tony09uk

1
Serupa: Saya menulis *ngFor="let diagram if diagrams", perhatikan if. Pesan "parse error" akan lebih baik ...
klenium

@klenium, Anda menyelamatkan hari saya! saya mendapat kesalahan itu saat menggunakan *ngFor="lang in languages"where angular 8 harapkan *ngFor="let lang of languages". Pesan kesalahan yang cukup menyesatkan imo: /
Jona Paulus

37

Anda harus mengimpor 'CommonModule' di modul tempat Anda menggunakan arahan bawaan ini seperti ngFor, ngIf, dll.

import { CommonModule } from "@angular/common";


@NgModule({
  imports: [
    CommonModule
  ]
})

export class ProductModule { }

3
Anda mengatakan mengimpornya ke dalam komponen, lalu menunjukkan kode yang mengimpornya ke dalam modul
Chris - Haddox Technologies

10

Hal-hal untuk diingat:

Ketika modul khusus digunakan (modul selain AppModule) maka perlu untuk mengimpor modul umum di dalamnya.

yourmodule.module.ts

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

@NgModule({
  imports: [
    CommonModule
  ],
  exports:[ ],
  declarations: []
})

Tahukah Anda mengapa saya mendapatkan kesalahan / peringatan itu sebenarnya di chrome bahkan setelah saya memiliki commonModule di kelas modul child / kustom saya?
Ak777

7

Jika Anda membuat modul Anda sendiri, tambahkan CommonModule di import di modul Anda sendiri


Menambahkan CommonModule berhasil untuk saya. Harap perbaiki jawaban Anda. Bagikan langkah-langkahnya juga
Ashish Yadav

5

Ini juga bisa terjadi jika Anda tidak mendeklarasikan komponen rute dalam modul fitur Anda. Jadi contohnya:

feature.routing.module.ts:

...
    {
        path: '',
        component: ViewComponent,
    }
...

feature.module.ts:

     imports: [ FeatureRoutingModule ],
     declarations: [],

Perhatikan ViewComponent tidak ada dalam array deklarasi, padahal seharusnya.


Terima kasih kawan, ini bukan masalah saya tetapi ini memberi saya petunjuk dan bingo, masalah saya terpecahkan !!
Abhinav Saxena

1

Modul Kustom Membutuhkan modul umum

impor {CommonModule} dari "@ angular / common";

@NgModule ({impor: [CommonModule]})


1

Saat menggunakan "app-routing.module" kami lupa mengimpor "CommonModule". Ingatlah untuk mengimpor!

import { CommonModule } from "@angular/common";
@NgModule({  imports: [ CommonModule]})

1

Saya mengalami kesalahan yang sama tetapi saya telah mengimpor CommonModule. Sebagai gantinya saya meninggalkan koma di tempat yang tidak semestinya karena salin / tempel saat memisahkan modul:

@NgModule({
    declarations: [
        ShopComponent,
        ShoppingEditComponent
    ],
    imports: [
        CommonModule,
        FormsModule,
        RouterModule.forChild([
            { path: 'shop', component: ShopComponent }, <--- offensive comma
        ])
    ]
})

1

app.module.ts diperbaiki dan diubah menjadi: impor BrowserModule di modul aplikasi Anda

import { BrowserModule } from '@angular/platform-browser';

@NgModule({
  declarations: [
    AppComponent    
  ],
  imports: [
    BrowserModule, 
  ],     
  providers: [],
  bootstrap: [AppComponent]
})

1

Saya mendapatkan kesalahan yang sama, Anda dapat memperbaikinya melalui salah satu metode ini:

  1. Jika Anda tidak memiliki modul bersarang

    Sebuah. Impor CommonModule di modul App Anda

    b. Impor Komponen Anda di tempat Anda menambahkan * ngFor di App Module , tentukan dalam deklarasi

// file App.modules.ts
@NgModule({
  declarations: [
    LoginComponent // declarations of your component
  ],
  imports: [
    BrowserModule
    DemoMaterialModule,
    FormsModule,
    HttpClientModule,
    ReactiveFormsModule,
    AppRoutingModule,
    BrowserAnimationsModule,
    ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production })
  ],
  providers: [
    ApiService, 
    CookieService, 
    {
      provide: HTTP_INTERCEPTORS,
      useClass: ApiInterceptor,
      multi: true
    }
  ],
  bootstrap: [AppComponent]
})

c. Jika Anda menggunakan file modul terpisah untuk perutean, maka Impor CommonModule di modul Perutean Anda yang lain Impor CommonModule di modul Aplikasi Anda

// file app.routing.modules.ts
import { LoginComponent } from './login/login.component';
import { CommonModule } from "@angular/common";

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

@NgModule({
  imports: [RouterModule,RouterModule.forRoot(routes), CommonModule],
  exports: [RouterModule]
})
  1. Jika Anda memiliki modul bersarang, lakukan langkah pertama dalam modul tersebut

Dalam kasus saya, metode ke-2 menyelesaikan masalah saya.
Semoga ini bisa membantu Anda


1

Bagi saya masalahnya adalah bahwa saya tidak mengimpor custom made modul HouseModuledi saya app.module.ts. Saya memiliki impor lainnya.

File: app.module.ts

import { HouseModule } from './Modules/house/house.module';

@NgModule({
  imports: [
    HouseModule
  ]
})

1

Pembaca Masa Depan

Periksa setiap hal berikut:

  • Komponen dideklarasikan dalam TUNGGAL modul sudut
  • Pastikan Anda punya import { CommonModule } from '@angular/common';
  • Mulai ulang IDE / editor

0

Saya mulai pada proyek live dasar Angular8 mendapat masalah di atas tetapi Ketika menggunakan "app-routing.module" kami lupa mengimpor "CommonModule". Ingatlah untuk mengimpor!

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

@NgModule({
  imports: [
    CommonModule
]})

Ini akan menyelesaikan kesalahan Anda.


0

Masalah ini muncul ketika menggunakan Routes, kita dapat menampilkan konten statis dari setiap modul, tetapi ketika mencoba menggunakan fungsi ani seperti * ngIg tidak berfungsi, karena perlu pekerjaan seperti katakanlah @Ruben Szeker, perlu menambahkan Komponen ke app.module.ts pada impor [], untuk menyelesaikan penutupan atau mematikan eksekusi server dan mencoba kembali menjalankan servis, akan menyelesaikan masalah. jika ini tidak berhasil untuk Anda, saya akan mencoba cara lain.

Saya minta maaf atas bahasa Inggris saya yang buruk.


0

Saya mengalami masalah karena ** sebagai gantinya *

*ngFor="let ingredient of ingredients"

**ngFor="let ingredient of ingredients"

Ya, VS Code sepertinya secara otomatis menempatkan dua bintang, bukan satu.
Alexei

0

Saya telah mengalami kesalahan serupa ( *ngIf) meskipun semua impor saya OK dan komponen diberikan tanpa kesalahan lain + perutean OK.

Dalam kasus saya AppModuletidak termasuk modul khusus itu. Yang aneh adalah bahwa ia tidak mengeluh tentang hal ini, tetapi ini mungkin terkait dengan cara kerja Ivy ng serve(jenis modul beban sesuai dengan perutean, tetapi ketergantungannya tidak dipertimbangkan).


0

Baru saja kehilangan ~ 1 jam karena kesalahan ini, hanya pada satu halaman tertentu. Mencoba semua jawaban di sini, tetapi akhirnya solusinya adalah membangun kembali semuanya dengan ng, masalahnya hilang begitu saja ...


0

Jadi tolong pastikan

  1. Tidak ada kesalahan sintaks dalam arahan

  2. Modul Browser (dalam Modul Aplikasi) dan Modul Umum (di lain / anak) diimpor (Sama dengan yang disebutkan Günter Zöchbauer di atas)

  3. Jika Anda telah merutekan dalam aplikasi, modul rute harus diimpor di Modul Aplikasi

  4. Semua Module komponen yang dirutekan juga diimpor dalam App Module, misalnya: app-routing.module.ts adalah sebagai berikut:

    rute const: Rute = [

    {path: '', komponen: CustomerComponent},

    {jalur: 'admin', komponen: AdminComponent}

    ];

Kemudian modul App harus mengimpor modul CustomerComponent dan AdminComponent di @NgModule ().


-1

Meskipun saya menghadapi masalah yang sama, saya mencoba semua jawaban di sini, tetapi perubahan sederhana membantu saya menyelesaikan masalah ini, alih-alih menyertakan * ngFor dalam trtag, saya memasukkannya ke dalam tbodytag. Semoga membantu seseorang.

<tbody *ngFor="let product of products; let i=index">
        <tr >
            <td>{{product.id}}</td>
            <td>{{product.name}}</td>
            <td>{{product.description}}</td>
            <td>{{product.quantity}}</td>
            <td>
                <button type="button" >Update</button>
                <button type="button" (click)="crudService.delete(product.id)">Remove</button>
            </td>
        </tr>
    </tbody>

-2

import CommonModule di kedua modul anak dan komponennya

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.