在 angular 中将表单数据传递给参数时未定义

Getting undefined on passing form data to param in angular

我试图从我认为的表单向 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);