1
我在ng2 rc4中开发,我的用户数据存储在Mongo DB中。用户可以在我的页面中编辑他们的数据,但我的编辑页面有问题。我的来源是这样的:如何在AngularJS 2表达式中使用Json(Mongo DB)数据
import { User } from './user.service.ts';
@component(
selector: 'edit-user',
template: `
Email : <input type="text" [(ngModel)]="userInfo.email"><br />
Name : <input type="text" [(ngModel)]="userInfo.name"><br />
Address : <input type="text" [(ngModel)]="userInfo.address"><br />
Tel :
<input type="text" [(ngModel)]="userInfo.tel.tel1">-
<input type="text" [(ngModel)]="userInfo.tel.tel2">-
<input type="text" [(ngModel)]="userInfo.tel.tel3"><br />
<button>Submit</button>
`,
providers: [ User ]
)
export class EditUser {
private userInfo: any = {
'email': '',
'name': '',
'address': '',
'tel': {
'tel1': '',
'tel2': '',
'tel3': ''
}
};
constructor(private user: User) {
}
ngOnInit() {
this.getUser();
}
getUser() {
this.user.getUser(...)
.then(res => {
...
// case 1
// res = {'email': '[email protected]', 'name': 'NameA', 'address': 'aaa', 'tel': {'tel1': '1', 'tel2': '2', 'tel3': '3'}};
// case 2
// res = {'email': '[email protected]', 'name': 'NameB'};
this.userInfo = res;
...
})
.catch(...)
}
}
一切进展顺利时,在情况1,但情况2,没有电话对象,输入标签抛出,因为在资源缺少的电话对象的错误。用户在案例2中没有输入电话信息。所以这是一个双向绑定错误:未定义userInfo的tel属性。不要表达,不要输入tel.tel1属性。
我无法更改mongoDB和json层次结构。我该如何解决这个问题?
我知道。但那不是对我的回答。 res有很多类似tel的属性。 – mago
这就是发送空对象到mongoDB。我不想要它。 – mago