我使用Knockout.js获得了以下关联数组。
self.users = ko.observableArray([{name: "Unassigned", value: null}]);
在单击按钮的应用程序中的某个时刻,我必须开始向此数组添加更多值。但是,我不太清楚该怎么做。以前,我只是使用像这样的通用数组:
$.each(data.users, function(index, user)
{
vm.users.push(user.first_name + " " + user.last_name);
});
现在我必须处理多个值,我不知道如何将项目和值都推送到数组。有一个简单的方法吗?
更新
根据Milimetric的建议,我将我的代码更新为以下内容:
vm.users.push({name: user.first_name + " " + user.last_name, value: index + 1});
然后我回去并将我的观点更新为以下内容:
<select id="ticket_assignee" name="ticket[assignee]" data-bind="options: users.name, value: assignee"></select>
在更新视图之前,我在下拉列表中获得了正确数量的项目。更新视图后,我只有一个值为“d”的值。我的猜测是d来自Unassigned中的最后一个字母。我做错了导致值无法正确显示吗?
答案 0 :(得分:0)
在聊天中与CrimsonChris交谈之后,他得出的结论是,使用一个物体阵列,我正在尝试做的事就是矫枉过正。他指出,由于我只是想创建一个对象的下拉列表,我可以使用Figure 3 from the Knockout "options" binding documentation作为当前任务的指南。在遵循该示例之后,通过使用options,optionsText和value bindings,我能够完美地完成所有工作。