为什么FormsModule在app.module中导入,而routing.module中的组件可以工作



我正在试图弄清楚angular是如何导入模块的,我不确定为什么它不能从根目录加载表单模块。

...
@NgModule({
declarations: [AppComponent],
imports: [AppRoutingModule, BrowserModule, TabsModule.forRoot(), FormsModule],
providers: [ServersService],
bootstrap: [AppComponent],
})
export class AppModule {}

和应用程序路由模块

const routes: Routes = [
{ path: '', component: HomeComponent },
{ path: 'users', component: UsersComponent },
{ path: 'servers', component: ServersComponent },
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule],
})
export class AppRoutingModule {}

但我从模板中得到错误

<div class="form-group">
<label for="name">Server Name</label>
<input
type="text"
id="name"
class="form-control"
[(ngModel)]="serverName">
</div>
<div class="form-group">
<label for="status">Server Status</label>
<select
id="status"
class="form-control"
[(ngModel)]="serverStatus">
<option value="online">Online</option>
<option value="offline">Offline</option>
</select>
</div>
<button
class="btn btn-primary"
(click)="onUpdateServer()">Update Server</button>

[(ngModel(]=";服务器状态"/[(ngModel(]=";服务器状态"-无法绑定到"ngModel",因为它不是"select"的已知属性

我理解为什么,我需要导入Forms模块,但Angular不应该从根app.module导入它吗?

我也试着把它放在routing.module中,但它也不起作用

我稍后会把这些组件放在它们所属的模块中,然后它就会工作,但我只是想知道为什么它不能这样工作?

Angular只能向上查看堆栈,而不能向下查看。

因此,如果你只想创建FormsModule的导入,就把它放在一个共享模块中,该模块在子模块中导入(并导出它(
如果不将其导入子模块,它就不知道其存在。

最新更新