我正在使用Angular2 Final版本(2.1.0)。当我想显示公司列表时,我收到了这个错误。
file.component.ts
中的:
public companies: any[] = [
{ "id": 0, "name": "Available" },
{ "id": 1, "name": "Ready" },
{ "id": 2, "name": "Started" }
];
file.component.html
中的:
<tbody>
<tr *ngFor="let item of companies; let i =index">
<td>{{i}}</td>
<td>{{item.name}}</td>
</tr>
</tbody>
答案 0 :(得分:157)
如果BrowserModule
是根模块imports: []
,则@NgModule()
中的AppModule
添加CommonModule
,否则import {BrowserModule, CommonModule} from '@angular/common';
..
..
@NgModule({
imports: [BrowserModule, /* or CommonModule */],
..
})
。
ArticlesController
def index
@articles = Article.all.paginate(page: params[:page], per_page: 16)
end
答案 1 :(得分:24)
就我而言,问题是我的队友在模板中提到*ngfor
而不是*ngFor
。很奇怪,没有正确的错误来处理这个问题(在Angular 4中)。
答案 2 :(得分:20)
您必须在使用这些内置指令(如ngFor,ngIf等)的组件中导入“CommonModule”。
import { CommonModule } from "@angular/common";
@NgModule({
imports: [
CommonModule
]
})
export class ProductModule { }
答案 3 :(得分:10)
对我来说,问题是我没有在randrange(a, b+1)
中导入定制模块HouseModule
。我还有其他进口。
文件:app.module.ts
app.module.ts
答案 4 :(得分:9)
如果未在要素模块中声明路线组件,也会发生这种情况。例如:
feature.routing.module.ts:
...
{
path: '',
component: ViewComponent,
}
...
feature.module.ts:
imports: [ FeatureRoutingModule ],
declarations: [],
请注意,在声明数组中,ViewComponent是 not ,而不是。
答案 5 :(得分:5)
如果您要制作自己的模块,请在您自己的模块中的导入中添加CommonModule
答案 6 :(得分:4)
未来的读者
检查以下各项:
import { CommonModule } from '@angular/common';
ng serve
)答案 7 :(得分:4)
要记住的事情:
使用自定义模块(AppModule以外的模块)时,有必要在其中导入通用模块。
selectedFilters ["Product Rating": ["5", "4", "3", "2", "1"], "Price": ["$00.00 - $200.00", "$200.00 - $400.00", "$600.00 - $800.00", "$800.00 - $1000.00", "$1000.00 AND OVER"]]
答案 8 :(得分:2)
我收到错误消息,因为我正在使用的组件未在模块的声明:[]部分中注册。
添加组件后,错误消失了。我本来希望比此错误消息更晦涩难懂的东西能够指示出真正的问题。
答案 9 :(得分:2)
以防万一有人在尝试导入CommonModule
之后仍然遇到错误,请尝试重新启动服务器。它出奇地工作
答案 10 :(得分:2)
对于Angular 10:
不执行步骤2将触发此错误!
请务必重新开始投放!!!
答案 11 :(得分:1)
我有同样的错误,但是我有导入了CommonModule。取而代之的是,我在分割模块时留了一个逗号,这不应该是因为复制/粘贴:
@NgModule({
declarations: [
ShopComponent,
ShoppingEditComponent
],
imports: [
CommonModule,
FormsModule,
RouterModule.forChild([
{ path: 'shop', component: ShopComponent }, <--- offensive comma
])
]
})
答案 12 :(得分:1)
如果一切正常,请重新启动应用
我不得不面对这个错误,但是怎么办?我删除了一个模块,同时也从父模块中删除了它的引用,因此此错误开始进入我的浏览器,但在编辑器中一切正常,即VS Code
,因此我重新启动我的应用程序固定。
如果您通过验证此页面上提供的其他答案认为一切都很好,请尝试重新启动该应用。
答案 13 :(得分:1)
对我来说,解决问题的是对我的项目进行 git clone 并运行(像往常一样):
npm install
答案 14 :(得分:1)
我遇到了同样的问题,即使我在“module.ts”中导入了“BrowserModule”和“CommonModule”,但它没有不工作,我的错误是,没有添加“NgModule.declarations”我的组件。
@NgModule ({
declarations: [
Your_Component // here
]
})
答案 15 :(得分:1)
将组件添加到您的 app.module
import { ModalComponent } from './modal/modal.component';
@NgModule({
declarations: [ModalComponent],
entryComponents: [ModalComponent],
}),
providers: [
],
bootstrap: [AppComponent]
})
答案 16 :(得分:1)
我遇到了一个问题,因为 json 数据中有空格。
答案 17 :(得分:1)
自定义模块需要通用模块
从“ @ angular / common”导入{CommonModule};
@NgModule({ 进口:[ 通用模块 ] })
答案 18 :(得分:1)
app.module.ts已修复,更改为:在应用模块中导入 BrowserModule
import { BrowserModule } from '@angular/platform-browser';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
],
providers: [],
bootstrap: [AppComponent]
})
答案 19 :(得分:0)
当 $ psql postgresql://user:password@127.0.0.1:5432/database
语法编写不正确时,也可能引发此错误,在我的情况下,我有:
ngFor
它通过使用以下语法得到修复:
<ng-template *ngForOf="let key of SomeObject; index as i">
答案 20 :(得分:0)
就我而言,问题是我在 const
中使用了 let
而不是 *ngFor
。
答案 21 :(得分:0)
使用“ app-routing.module”时,我们忘记导入“ CommonModule”。记住要导入!
import { CommonModule } from "@angular/common";
@NgModule({ imports: [ CommonModule]})
答案 22 :(得分:0)
如果你已经使用了 (BrowserModule, CommonModule, FormsModule) 它仍然无法正常工作
那么你要做的就是检查有错误的组件是否在模块中声明
答案 23 :(得分:0)
通过将CommonModule
导入其他(新的/自定义的)模块中,似乎可以收敛很多答案。
仅在所有情况下,此步骤是不够的。
完整的解决方案包括两个步骤:
NgIf
,NgFor
等对您的项目可见。app.module.ts
)中重新组装所有内容 第1点
主模块中的BrowserModule
似乎足以访问NgFor
。
Angular Documentation站在这里:。
CommonModule导出所有基本的Angular指令和管道,例如NgIf,NgForOf,DecimalPipe等。通过BrowserModule重新导出,
另请参见此处的答案:CommonModule vs BrowserModule in angular
第2点
(在我的情况下)仅需要进行以下更改:
OtherModule
OtherComponent
app.module.ts
@NgModule({
imports: [
BrowserModule,
OtherModule
],
declarations: [OtherComponent, AppComponent],
bootstrap: [AppComponent]
})
export class AppModule {
}
other.html
<div *ngFor='let o of others;'>
</div>
other.component.ts
@Component({
selector: 'other-component',
templateUrl: './other.html'
})
export class OtherComponent {
}
app.module.ts
@NgModule({
imports: [],
providers: []
})
export class OtherModule{
}
答案 24 :(得分:0)
所以请确保
指令中没有语法错误
浏览器(在App模块中)和通用(在其他/子模块中)模块已导入(与上述Günter Zöchbauer相同)
如果您已在应用程序中进行路由,则应将路由模块导入到App Module中
所有路由组件的模块也都导入到App Module中,例如: app-routing.module.ts如下:
const路线:路线= [
{路径:”,组件:CustomerComponent},
{路径:“ admin”,组件:AdminComponent}
];
然后,App模块必须在@NgModule()中导入CustomerComponent和AdminComponent的模块。
答案 25 :(得分:0)
即使我的所有导入都正常并且呈现组件时没有任何其他错误,我也遇到了类似的错误(*ngIf
)。
在我的情况下,AppModule
不包括该特定模块。奇怪的是,它没有对此抱怨,但是这可能与Ivy与ng serve
的工作方式有关(根据路由选择加载模块的种类,但是不考虑其依赖性)。
答案 26 :(得分:0)
我因为**而有问题*
item.fieldGroup['Import'].formControl.setValue(333.33)
答案 27 :(得分:0)
我在Angular8基础实时项目上启动时遇到了上述问题,但是当使用“ app-routing.module”时,我们忘记了导入“ CommonModule”。记住要导入!
import { CommonModule } from '@angular/common';
@NgModule({
imports: [
CommonModule
]})
它将解决您的错误。
答案 28 :(得分:0)
我遇到了同样的错误, 您可以通过以下一种方法解决此问题:
如果没有任何嵌套模块
a。将 CommonModule 导入您的 App模块
b。将组件导入到要在应用模块中添加 * ngFor 的位置,在声明
// 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。如果您使用单独的模块文件进行路由,则在路由模块中导入 CommonModule ,否则在 App模块
CommonModule >// 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]
})
就我而言,第二种方法解决了我的问题。
希望对您有帮助
答案 29 :(得分:-1)
即使我遇到了同样的问题,我也在这里尝试了所有答案,但是一个简单的更改帮助我解决了这个问题,而不是在tr
标记中包含* ngFor,而在{{1}中包含了它} 标签。希望对别人有帮助。
tbody