Tôi đang tạo biểu mẫu chỉnh sửa cho người dùng, vai trò của người dùng không được chọn theo mặc định trong nhiều lựa chọn.Loại bỏ nhiều lựa chọnTùy chọn được chọn không được chọn khi tải
Có 2 vai trò ứng dụng: "Quản trị viên" và "Người kiểm duyệt". Người dùng mẫu có 1 vai trò là "Quản trị viên". Cái này không được chọn theo mặc định.
html:
<form data-bind="with: user">
<select id="selectRoles"
data-bind="options: $root.allRoles, selectedOptions: Roles, optionsText: 'Name', optionsValue: 'Id'"
multiple="true"
size="5">
</select>
</form>
js:
var User = function() {
var self = this;
self.Id = ko.observable(1337);
self.Username = ko.observable('pietpaulusma');
self.Roles = ko.observableArray([{ Id: 1, Name: 'Administrator' }]);
};
function UserViewModel() {
var self = this;
self.user = ko.observable(new User());
self.allRoles = ko.observableArray([{ Id: 1, Name: 'Administrator' }, { Id: 2, Name: 'Moderator' }]);
}
ko.applyBindings(new UserViewModel());
CẬP NHẬT tạo một dependentObservable và ánh xạ mà một đến selectedOptions
self.RoleIds = ko.dependentObservable(function() {
return ko.utils.arrayMap(self.Roles(), function (role) {
return role.Id;
});
});
phiên bản làm việc: http://jsfiddle.net/jgT8s/5/
Đó là một mẹo tuyệt vời về dependObservable .. xấu hổ chúng ta phải đi đến độ dài như vậy .. –