Knockout.js 取消选择多个选择加载时未选择的选项
我正在为一个用户创建一个编辑表单,默认情况下,在多选模式中不会选择该用户的角色 有两个应用程序角色:“管理员”和“版主”。示例用户有1个角色“管理员”。默认情况下不选择此选项 html: 更新 创建了DependentToServable并将其映射到selectedOptionsKnockout.js 取消选择多个选择加载时未选择的选项,knockout.js,Knockout.js,我正在为一个用户创建一个编辑表单,默认情况下,在多选模式中不会选择该用户的角色 有两个应用程序角色:“管理员”和“版主”。示例用户有1个角色“管理员”。默认情况下不选择此选项 html: 更新 创建了DependentToServable并将其映射到selectedOptions self.RoleIds = ko.dependentObservable(function () { return ko.utils.arrayMap(self.Roles(), function
self.RoleIds = ko.dependentObservable(function () {
return ko.utils.arrayMap(self.Roles(), function (role) {
return role.Id;
});
});
工作版本:淘汰需要按值比较所选选项,在本例中为
Id
:optionsValue:'Id'
。您正在传递一个Role
对象数组。您需要传递Id
的数组:
var User = function () {
...
self.Roles = ko.observableArray([1]);
};
问题在于
Roles
包含“full”对象,而它应该只包含值部分:
self.Roles = ko.observableArray([1]);
看看这里:thanx!我已经创建了一个DependentToServable,它返回角色的所有ID。如果knockout使用optionsValue属性tho映射对象,那就太好了。@Bas:我同意-一致使用
optionsValue
会很好。先回答,但不是接受的答案+1从我这里。有人知道如何使用对象来代替ID吗?这里的关键是,通过指定选项value:
您可以准确地设置列表绑定到什么,即使您的选项:
绑定指向一个对象数组,我花了一段时间才掌握。这是关于DependentToServable的一个很好的提示。。真遗憾,我们不得不走这么长的路。。
var User = function () {
...
self.Roles = ko.observableArray([1]);
};
self.Roles = ko.observableArray([1]);