Я изучаю angular, и у меня возникла проблема с обновлением переменной.
функция toggleVariable должна переключаться isUserNameEmpty, но она вообще не работает
export class ServersComponent implements OnInit {
userName = '';
isUserNameEmpty=true;
onUserNameUpdate(event:any){
this.userName = (<HTMLInputElement>event.target).value;
this.toggleVariable( this.userName,this.isUserNameEmpty);
}
toggleVariable(variableName,variableToToggle){
if (variableName!=''){
console.info('not empty');
console.info('variableName: '+variableName);
console.info('variableToToggle: '+variableToToggle);
variableToToggle=false;
}
else if (variableName==''){
console.info('empty');
console.info('variableName: '+variableName);
console.info('variableToToggle: '+variableToToggle);
variableToToggle=true;
}
}
clearUserName(){
this.userName = '';
}
}
Мне просто интересно





Вы не изменяете свойство isUserNameEmpty. Вы только изменяете значение variableToToggle в рамках метода. попробуй это
toggleVariable(variableName) {
this.isUserNameEmpty = variableName === '';
}
так что нет способа сделать функцию, независимую от переменной класса? странно
@JuanCasas только объекты передаются как ссылки, примитивы передаются как значения
Есть способы сделать метод более универсальным, возвращая значение, которое затем будет использоваться для установки значения свойства, в данном случае isUserNameEmpty.
@LewisCortright на пост президента 2024!! Спасибо!!! Я добавил вас на LinkedIn!!
Почему бы не передать переменную непосредственно внутри оператора if?