ユーザーの編集フォームを作成していますが、複数選択でユーザーのロールがデフォルトで選択されていません。ノックアウト複数選択selectedOptionsがロード時に選択されていません
"管理者"と "モデレーター"という2つのアプリケーションロールがあります。サンプルユーザーには1つの役割 "Administrator"があります。これはデフォルトでは選択されていません。
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());
UPDATEは はdependentObservableを作成し、マップされたそのselectedOptionsに1
self.RoleIds = ko.dependentObservable(function() {
return ko.utils.arrayMap(self.Roles(), function (role) {
return role.Id;
});
});
作業バージョン:optionsValue: 'Id'
:http://jsfiddle.net/jgT8s/5/
これは、従業員の観察に関する素晴らしいヒントです。私たちはそのような長さに行かなければなりません。 –