Checkbox 取消选中复选框绑定选定值

Checkbox 取消选中复选框绑定选定值,checkbox,knockout.js,Checkbox,Knockout.js,我正在学习knockout,并试图构建一个页面,该页面将构建一个可选用户列表。 JSFIDLE:我无法正确分配数据 当我调用控制器时,数据分配正在我的页面中工作,如下图所示,它按预期绑定到控件 $.getJSON("/Wizard/GetUsers",function(allData){ var mappedUsers = $.map(allData.AllUsers, function(item){return new User(item)}); self.Al

我正在学习knockout,并试图构建一个页面,该页面将构建一个可选用户列表。 JSFIDLE:我无法正确分配数据

当我调用控制器时,数据分配正在我的页面中工作,如下图所示,它按预期绑定到控件

$.getJSON("/Wizard/GetUsers",function(allData){
        var mappedUsers = $.map(allData.AllUsers, function(item){return new User(item)});
        self.AllUsers(mappedUsers);
        if(allData.SelectedUsers != null){
        var mappedSelectedUsers = $.map(allData.SelectedUsers, function(item){return new User(item)});
        self.SelectedUsers(mappedSelectedUsers);}
    });
问题:

a。我写的JSFIDLE有什么问题?让它工作起来

b。在我的代码中,我能够为选中的复选框调用函数,但我无法获取存储在函数中接收的用户参数中的值。在ChromeJS控制台中,我可以看到用户对象存储了正确的值,我只是无法检索它。这是通过做ko.toJS得到的

谢谢

编辑: 好的,我的JSFIDLE工作了,我必须在框架中选择Knockout.js。更新的小提琴:

另外,为了获得选中复选框的值,我做了

ko.toJS(user).userName

但我认为我将采取从列表中选择值的方法,然后单击将它们移动到另一个选定列表,并从以前的列表中删除这些值。从这篇文章中得到了这个想法:

好的,我想我已经找到了你需要的解决方案

我首先设置了一个可观察的SelectedUserName数组,并将其应用于如下元素:

<input type="checkbox" 
       name="checkedUser" 
       data-bind="value: userName, checked:$root.selectedUserNames" />
[我最初尝试为selectedUserNames设置一个相关的observable ko.computed,该函数具有读写功能,但复选框中没有该函数。]

此订阅函数检查新的selectedUserNames数组,从AllUsers中查找用户名与该selectedUserNames数组中的值匹配的用户,并将匹配的用户对象推送到SelectedUsers数组…实际上,它将每个匹配的用户推送到临时数组,然后将临时数组分配给SelectedUsers,但目标实现了。SelectedUsers数组现在将始终包含我们希望它包含的内容

哦,我差点忘了……这是我制作的小提琴,所以你有完整的解决方案:


希望这有帮助,但如果您有任何问题,请告诉我。好的,我想我已经找到了您需要的解决方案

我首先设置了一个可观察的SelectedUserName数组,并将其应用于如下元素:

<input type="checkbox" 
       name="checkedUser" 
       data-bind="value: userName, checked:$root.selectedUserNames" />
[我最初尝试为selectedUserNames设置一个相关的observable ko.computed,该函数具有读写功能,但复选框中没有该函数。]

此订阅函数检查新的selectedUserNames数组,从AllUsers中查找用户名与该selectedUserNames数组中的值匹配的用户,并将匹配的用户对象推送到SelectedUsers数组…实际上,它将每个匹配的用户推送到临时数组,然后将临时数组分配给SelectedUsers,但目标实现了。SelectedUsers数组现在将始终包含我们希望它包含的内容

哦,我差点忘了……这是我制作的小提琴,所以你有完整的解决方案:


希望这能有所帮助,但如果您有任何问题,请告诉我。

在看到您的帖子之前,我更新了我的问题,最后我使用了类似的东西。不过,您的小提琴看起来更复杂,我会研究它以了解它的作用。如果我什么都不懂的话,可能会发布更多的问题作为评论。感谢您的帮助。值的顺序:和选中的顺序:无关紧要绑定集合中每个绑定的应用顺序不是确定性的-但它们都必须为此行为指定。在看到您的帖子之前,我更新了我的问题,最后我使用了类似的方法,你的小提琴看起来更复杂,我会研究它以了解它的作用。如果我什么都不懂的话,可能会发布更多的问题作为评论。感谢您的帮助。值的顺序:和选中的顺序:无关紧要绑定集合中每个绑定的应用顺序不是确定性的,但必须为此行为同时指定它们。