将表单数据以角度传递给参数时未定义

问题描述

我正在尝试将值从我视图中的表单传递给 formData,但是当我传递参数时,它显示 undefined

    // Initialize Params Object
    let myFormData = new FormData();

    // Begin assigning parameters     
    const username = myFormData.append('myUsername',this.registerForm.value.firstname);
    const email = myFormData.append('myEmail',this.registerForm.value.email);

    //post request
    return this.http.post('http://localhost:81/save.PHP/',myFormData).subscribe((res: Response) => {
        console.log(res);
    },(err) =>{
        this.indexedDbService
            .addUser(username,email)  //  undefined,undefined
            .then(this.backgroundSync)
            .catch(console.log);
            // this.backgroundSync();
    })
} 

但是,如果我尝试传递一个硬编码的 JSON 对象,它会正确接收。 如何将数据从 myFormData 正确传递到 addUser 的参数中?

解决方法

FormData.append 是一个空函数,因此 usernameemail 在您的代码中将始终为 undefined

const example = new FormData();
const voidResult = example.append('foo','bar');
console.log(voidResult) // undefined

如果您想以这种方式访问​​它们,则需要将它们分配给表单值。示例:

const { firstname: username,email } = this.registerForm.value;
myFormData.append('myUsername',username);
myFormData.append('myEmail',email);

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...