#angular #forms #input
#angular #формы #ввод
Вопрос:
У меня есть два пользовательских ввода, как показано ниже:
<custom-input [name]="'lastName'" [customErrorMessage]="errorMessage" (valueChange)="lastNameChange($event)">
</custom-input>
<custom-input [name]="'firstName'" [customErrorMessage]="errorMessage" (valueChange)="firstNameChange($event)">
</custom-input>
Как вы можете видеть, я использую одну и ту же переменную errorMessage
как для имени, так и для фамилии.
Это работает нормально, т.е. когда я меняю имя, появляется только ошибка для имени и аналогично для фамилии. Хотя он указывает на ту же переменную, кажется, что она работает нормально.
Есть ли какой-либо случай, когда это не сработает?
Вот код для компонента пользовательского ввода:
@Component({
selector: 'custom-input',
templateUrl: './input.component.html',
styleUrls: ['./input.component.scss'],
providers: [MyService]
})
export class InputComponent extends FormComponent implements OnInit, OnChanges, AfterViewChecked, AfterViewInit, OnDestroy {
@Input() customErrorMessage;
}
Комментарии:
1. Пожалуйста, покажите код компонента пользовательского ввода
2. Я предполагаю, что customErrorMessage — это строка — не функция, не сервис или что-то подобное — итак, ваши компоненты независимы: у каждого есть свои собственные переменные. Я не понимаю, как это не сработает, если это объект, и объект отображается в зависимости от свойства собственного объекта
3. О чем здесь беспокоиться? Совместное использование данных между компонентами является распространенным вариантом использования. Я не вижу ничего плохого в этой концепции.
4. @Eliseo Да, это строка, но она не определена в компоненте place для пользовательского ввода. Это определено в текущем компоненте. Я предполагаю, что это сбивало с толку одно и то же имя
customErrorMessage
, я переименовалerrorMessage
.