我希望将我的register.html和我的register.ts文件链接在一起,以便向我的后端发送帖子请求。我正在创建一个寄存器屏幕,它将信息发送到我的数据库(mongoDB / Node)
我开始使用[{ngModel}],如下例所示:
<form id="signup-form3">
<ion-list id="signup-list2">
<ion-item id="signup-input6">
<ion-label>
email
</ion-label>
<ion-input type="email" name="email" [(ngModel)]="email" placeholder="Email"></ion-input>
</ion-item>
但是仍然收到错误:'无法绑定到'{ngModel}',因为它不是'ion-input'的已知属性。这是在我将所有必要的导入到我的app.module.ts之后。
在我的TS文件中,我正在使用...
发送帖子请求register() {
let headers = new Headers();
headers.append("Content-Type", "application/json");
let body = {
email: "this.email",
password: "this.password"
};
this.http.post('http://localhost:3005/v1/account/register', JSON.stringify(body), {headers: headers})
.map(res => res.json())
.subscribe(data => {
console.log(data);
});
}
不确定是否有更简单的方法,或者我使用的是错误的方式。
编辑:修正了[(ngModel)]拼写错误。现在给我错误......
“具有给定用户名的用户已经注册” - 我认为它正在向数据库发送“this.email” - 虽然当我登录时将其注销,但它正在显示该电子邮件。这是JSON.stringify的问题吗?
编辑2 :现在从我的后端收到错误:'错误:发送后无法设置标题。'
答案 0 :(得分:2)
问题在于它不是[{ngModel}]
,而是[(ngModel)]
。这应该可以解决这个问题。
修改强>
从身体上的""
和this.email
移除this.password
,应该是这样的:
let body = {
email: this.email,
password: this.password
};
答案 1 :(得分:0)
好的,我在@ChesterLaborde
的帮助下发现了这个问题我不得不拿出.map(res =&gt; res.json())
正如@ChesterLaborde提到的那样取出Stringify - 我相信这是因为我已经把它变成了JSON,并且.map(res =&gt; res.json())试图再次这样做。我相信这是问题的根源,至少对我有用。