1
私はng2 rc4で開発しています。私のユーザーデータはMongo DBに格納されています。ユーザーは自分のページのデータを編集できますが、編集ページに問題があります。私のソースは、次のようになります。ケース1ではなく、ケース2には何TELオブジェクトが存在しないと、入力タグがあるため解像度で行方不明TELオブジェクトのエラーをスローしたときに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(...)
}
}
すべてが大丈夫です。ユーザーはケース2にtel情報を入力していませんでした。したがって、これは2ウェイバインディングエラーです:userInfoの未定義のtelプロパティ。式を使わないで、tel.tel1プロパティを入力しないでください。
mongoDBとjsonの階層は変更できません。どうすれば解決できますか?
場合、私はそれを知っている
tel
に空のオブジェクトを割り当てます。それは私には答えない。 resにはtelプロパティのようなものがたくさんあります。 – magoその方法は空のオブジェクトをmongoDBに送ります。私はそれを望んでいない。 – mago