#javascript #angular
#javascript #angular
Вопрос:
Пытаюсь следовать этому примеру подключения формы из учебных пособий Angular 2. Я адаптирую код для страницы входа в систему. https://angular.io/docs/ts/latest/guide/forms.html
Вот моя модель,
export class LoginModel {
constructor(
public id: number,
public password: string
) {}
}
Вот мой компонент,
import { Component, OnInit } from "@angular/core";
import { LoginModel } from "../Models/login.model";
@Component({
selector: "login-form",
templateUrl: "views/login.component.html",
})
export class LoginComponent implements OnInit {
model = new LoginModel(111, "true");
submitted = false;
ngOnInit() {
this.model.id = 111;
this.model.password = "true";
}
onSubmit(): void {
this.submitted = true;
}
// remove - used for debugging
get diagnostic(): string {
return "HERE: " JSON.stringify(this.model);
}
}
OnInit в компоненте, вероятно, не нужен, просто подумал, что попробую.
Наконец, вот мой HTML,
<div class="container">
<h1>Login Form</h1>
{{diagnostic}}
<form *ngIf="model">
<div class="form-group col-md-6">
<label for="id">User ID:</label>
<input type="text" class="form-control" id="id" name="id"
required
[(ngModel)]="model.id"
>
</div>
<div class="form-group col-md-6">
<label for="password">Password</label>
<input type="text" class="form-control" id="password" name="password"
required
[(ngModel)]="model.password"
>
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
Ошибка, с которой я продолжаю сталкиваться, заключается в том, что «model.id » не определено. Чтобы проверить это, я добавил *ngIf=»модель». Я не уверен, почему модель отображается здесь как неопределенная, когда она определена в LoginComponent, который импортируется через мой модуль.
Любая помощь была бы весьма признательна Я застрял на этом бите на некоторое время и не смог найти ничего полезного в Интернете.
Ответ №1:
У нас нет всего кода, но я думаю, что у вас могут быть импортированы не все необходимые модули. Похоже, вам не хватает FormsModule
и ReactiveFormsModule
Вот плунжер, который я создал на основе кода, предоставленного вами выше, и я заполнил пробелы для отсутствующего NgModule
определения: Плунжер
Комментарии:
1. Хорошо, спасибо за помощь. Я импортирую FormsModule, добавление ReactiveFormsModule не имеет значения. Я думаю, что может быть что-то принципиально неправильное в среде, настроенной в моей Visual Studio. Я попытаюсь выполнить чистую установку / создать новый проект и посмотреть, решит ли это что-нибудь. Спасибо!
2. Каким-то чудом я запускаю свой компьютер этим утром, решаю дать старому проекту еще одну попытку, и он просто работает. Честно говоря, не могу объяснить, почему раньше это не срабатывало, кроме того, что Visual Studio была испорчена. Еще раз спасибо.
3. Рад слышать, что это работает. Недавно у меня возникли проблемы в IntelliJ, которые, похоже, указывают на кэш IDE, поскольку очистка кэша и его перезапуск, похоже, заставляют IntelliJ переиндексировать.