0
ここにはJSFiddleがあります。オブジェクトの配列内に新しく追加されたアイテムを編集し、DOMを更新します
以下のように見えるオブジェクトの配列:
var data = [{
"ConferenceUsers": [{
"Id": 3006,
"ConferenceId": 8,
"Name": null,
"Email": "[email protected]",
"UserName": null,
"PhoneNumber": "234234234234"
}],
"Id": 8,
"Subject": "YYYhaaaaa",
"StartTime": "2016-05-29T18:30:00",
"EndTime": "2016-05-29T19:30:00",
"OrganizerEmail": "[email protected]",
"OrganizerName": "dasdasd",
}, {
"ConferenceUsers": [{
"Id": 3013,
"ConferenceId": 12,
"Name": null,
"Email": "[email protected]",
"UserName": null,
"PhoneNumber": null
}],
"Id": 12,
"Subject": "dsfsdfdsfsdf",
"StartTime": "2016-05-31T22:00:00",
"EndTime": "2016-05-31T23:00:00",
"OrganizerEmail": "[email protected]",
"OrganizerName": "dsfdsfsdf"
}];
に私は新しいConferenceUsers
を追加して編集できるようにする必要があります。
新しいユーザーの追加は機能しますが、編集することはできません。
ConferenceUserのViewModel:
var ConferenceUser = function (user) {
this.ConferenceId = ko.observable(user.ConferenceId);
this.Email = ko.observable(user.Email);
this.Id = ko.observable(user.Id);
this.Name = ko.observable(user.Name);
this.PhoneNumber = ko.observable(user.PhoneNumber);
};
ConferenceListのViewModelとマッピング:
var createConferenceUser = function (user) {
return new ConferenceUser(user);
};
var ConferenceList = function(conferencesJSON) {
var self = this;
var users = [];
for (i = 0; i < conferencesJSON.length; i++) {
users.push(conferencesJSON[i].ConferenceUsers);
}
this.conferences = ko.observableArray(conferencesJSON.map(createConference));
this.conferenceUsers = ko.observableArray(users.map(createConferenceUser));
this.addConference = function(conferenceJSON) {
self.conferences.push(createConference(conferenceJSON));
};
};
ko.applyBindings(new ConferenceList(data));
Q:私はまた、のような既存/新規に追加されたConferenceUsers
とDOMを更新するにはどうすればよいですjsFiddleにありますか?
質問の意味が不明です。プロパティーは* observables *です。どのように/なぜ彼らはそうではないと結論づけましたか? – Jeroen
タイトルが編集されました。あなたがフィドルを見ることができるなら、私はあなたが達成しようとしていることを理解すると思います。私は既存の/新しく追加されたユーザーとDOMを更新できる必要があります) – alex
'updateUser'関数が空であることは知っていますか? – PatrickSteele