Редактировать:
Как упомянул Аймен ТАГЛИССИЯ в комментариях, FormControl может быть более элегантным способом реализации формы и ее проверки. Вот Введение в формы в Angular, а также пример использования Реактивные формы .
Оригинальный ответ:
Перепишите свою функцию следующим образом: !this.filename
:
function validate(): boolean {
if (!this.filename) {
this.error = true;
this.message = "Please enter valid filename";
return false;
}
return true;
}
console.log(validate(null)); // false
console.log(validate(undefined)); // false
console.log(validate('')); // false
console.log(validate('valid')); // true
Хотя вы также можете подумать о передаче строки в качестве параметра:
function validate(str: string): boolean {
// Reset error and message?
// ...
if (!str) {
this.error = true;
this.message = "Please enter non empty string";
return false;
}
// Or reset error and message here
// this.error = false;
// this.message = undefined;
return true;
}
А затем что-то вроде:
if (!validate(this.filename)) {
// Valid filename
} else {
// Error
}