我持有用戶列表,其詳細信息顯示在引導對話框中。該列表已正確填充,詳細數據以模式正確顯示。但只要我更新一個或多個輸入字段,關閉對話框並打開另一個用戶的詳細信息,我就會看到編輯的值而不是第二個用戶的值。如果我在不編輯任何內容的情況下打開細節,我總會看到正確的值。敲除:編輯的輸入字段沒有更新
問題: 在編輯輸入字段的情況下,所選用戶(詳細顯示)不會被覆蓋。
視圖模型:
function UserViewModel() {
// init
var self = this;
self.userList = ko.observableArray([]);
self.selectedUser = ko.observable([]);
self.availableGroups = ko.observableArray([]);
self.errors = ko.observableArray([]);
self.loadUserList = function() {
$.ajax({
type : "POST",
url : "/user/loadUserList.htm",
success : function(response) {
var parsedJSON = $.parseJSON(response);
self.userList(ko.mapping.fromJS(parsedJSON));
},
});
}
self.loadUserDetail = function(user) {
// Set selected user
self.selectedUser(ko.mapping.fromJS(user));
// Load available groups
$.ajax({
type : "POST",
url : "/user/loadAvailableGroups.htm",
success : function(response) {
var parsedJSON = $.parseJSON(response);
self.availableGroups(ko.mapping.fromJS(parsedJSON));
registerClickListener();
initOrdinaryTooltips();
$("#user-dialog").modal('show');
},
});
}
self.addUser = function() {
self.loadUserDetail(ko.observable([]));
$("#user-dialog").modal('show');
}
self.saveUser = function() {
// select all assigned groups
$('#assigned-select option').prop('selected', true);
var formJson = $("#user-form").serializeArray();
$.ajax({
type : "POST",
url : "/user/saveUser.htm",
data: formJson,
success : function(response) {
var parsedJSON = $.parseJSON(response);
if(parsedJSON.errors.length == 0){
$("#user-dialog").modal('hide');
} else {
initErrorTooltips();
}
},
error : function(e) {
showErrorBox('Error: ' + e.status);
}
});
}
self.cancel = function() {
$("#user-dialog").modal('hide');
}
}
HTML:
<div class="form-group has-warning">
<label class="control-label"><spring:message code="masterdata.user.firstName" /></label>
<input type="text" class="form-control input-sm" data-bind='attr:{value: selectedUser().firstName}' name="user.firstName" />
<!-- ko foreach: errors() -->
<!-- ko if: key === 'user.firstName' -->
<span data-bind='text: value' class="spring-error fa fa-lg fa-exclamation-circle"></span>
<!-- /ko -->
<!-- /ko -->
</div>
你能顯示你的html代碼嗎? – szpic 2014-10-28 08:02:17
當然,請檢查更新。 – Tunguska 2014-10-28 08:11:39