我是角色2的新手。我正在寻找一种方法将表单输入值传递给ts组件,作为JSON字符串发送到spring控制器。我创建的基本表单如下
person.component.html
<div class="panel-body">
<div class="row">
<div class="col-sm-1"><label class="control-label" for="Name">Full Name:
</label></div>
<div class="col-sm-3">
<input type="text" class="form-control2" placeholder="Full Name"
[(ngModel)]="user.name"></div></div>
<br>
<div class="row">
<div class="col-sm-1"><label class="control-label" for="Email">Email:</label></div>
<div class="col-sm-3">
<input type="text" class="form-control2" [(ngModel)]="user.email">
</div>
</div>
<br>
<div class="col-sm-9">
<button class="btn1" (click)="savePage()"><b>Save</b></button>
<button class="btn1" (click)="resetPage()"><b>Cancel</b></button>
</div> </div>
person.ts
export class Person {
constructor(
public name: string,
public email: string,
) { }
}
还有什么要做的?
答案 0 :(得分:0)
你已经过去了!
[(ngModel)]="user.name"
- 这就是所谓的双向绑定。
现在,在您的打字稿文件中,对象user
将填充您的输入值
现在您需要某种服务,即需要在Component的提供程序中指定的user.service.ts
。
//组件
@Component({
[...]
providers: [UserService]
})
export class SomeComponent {
user: User = new User();
public SomeComponent(private _userService: UserService) {}
public addUser(): void {
this._userService.addUser(this.user).subscribe(res => {
console.log(res); //whatever
});
}
}
//服务
public addUser(user: User) {
return this.http.post(this.host + this.apiPrefix + '/users/', JSON.stringify(user),
{headers: <your headers>})
.map((res: any) => {
return res;
});
}
答案 1 :(得分:0)
如果您使用的[(ngModel)]
Person.ts
看起来像这样
export class Person {
name: string;
email: string;
}
然后将其导入person.component.ts
import { Person } from 'person.ts';
并在您的班级PersonComponent
内宣布user:Person;
然后在this.user = new Person();
constructor
现在[(ngModel)]
会为您映射数据。
答案 2 :(得分:0)
在TypeScript中,您可以执行以下操作:
export class Person {
name: string;
email: string;
}
const email = 'some mail';
const name = 'some name';
const person: Person = { name: name , email:email }
在你的情况下,它将是:
const person: Person = {name: user.name, email: user.email}
或只是
const person: Person = user;
最后你需要确保属性匹配。 例如,如果您有这样的方法:
someMethod(input: Person): void {}
您可以将用户对象作为参数传递:
someMethod(user); <--- this will work;