KnockoutJS选择模型
KnockoutJS Select on model
我正试图使用KnockoutJS绑定一个1位映射,其中1个邮政编码可以有许多"代理"。我有以下课程:
function CaseAssignmentZipCode(zipcode, agent) {
var self = this;
self.zipcode = ko.observable(zipcode);
self.agent = ko.observable(agent);
}
function Agent(id, name) {
var self = this;
self.id = id;
self.name = name;
}
function ZipcodeAgentsViewModel() {
var self = this;
self.caseAssignmentZipCodes = ko.observableArray([]);
self.agents = ko.observableArray([]);
jdata = $.parseJSON($('#Agents').val());
var mappedAgents = $.map(jdata, function (a) { return new Agent(a.Id, a.Name) });
self.agents(mappedAgents);
var dictAgents = {};
$.each(mappedAgents, function (index, element) {
dictAgents[element.id] = element;
});
var jdata = $.parseJSON($('#CaseAssignmentZipCodes').val());
var mappedZipcodeAgents = $.map(jdata, function (za) { return new CaseAssignmentZipCode(za.ZipCode, dictAgents[za.UserId], false) });
self.caseAssignmentZipCodes(mappedZipcodeAgents);
}
var vm = new ZipcodeAgentsViewModel()
ko.applyBindings(vm);
我的绑定如下:
<table>
<thead><tr><th>Zipcode Agents</th></tr></thead>
<tbody data-bind="foreach: caseAssignmentZipCodes">
<tr>
<td><input data-bind="value: zipcode"></td>
<td><select data-bind="options: $root.agents, value: agent, optionsText: 'name'"></select></td>
<td><a href="#" class="image-button small delete-small no-text" data-bind="click: $root.removeZipcode">Remove</a></td>
</tr>
</tbody>
</table>
第一次绑定时一切都很好,表和选择字段显示正确。但是,当我更改任何选定元素的选定值时,不会发生任何事情。我已经将其他元素绑定到它们上,但这些元素不会更新,并且我尝试使用.subscribe()来侦听更新事件,但这也不会触发。
我想我建立/约束这些关系的方式有问题,但我想不出能挽救我的生命。
谢谢!
我认为您需要添加
self.agents = ko.observableArray([]);
在ZipcodeUsersViewModel 的顶部
相关文章:
- Angular没有根据模型更新我的选择元素
- Angularjs:如何让ui选择只有一种方式的模型竞标
- 初始化ng模型时,Angular ui选择占位符不起作用
- 选择框中带有关联的ng模型,选项中带有ng重复
- 角度:仅当选择脏时定义 ng 模型
- 角度指令:当选择更改时,ng 模型未正确更新
- AngularJS绑定模型以选择更新输入数字字段,最小值为最大值
- 选择与ng模型和ng选项绑定时不进行选择
- 与设计用户相关联的多个模型-根据角色选择填写一个模型
- AngularJS:选择不绑定到模型
- 选择框中的ng模型工作不正常
- 使用数组中的嵌套对象在AngularJS中切换用于动态选择菜单的数据模型
- 使用 $q.all 有时会导致选择无法正确读取模型
- 在选择未绑定到模型 Angular js 的日期值时使用日期选择器
- 如何将 HTML 选择绑定到 Rivets.JS 中的模型值
- ng 模型设置值为选择
- 挖空选择框未绑定到初始模型值,而是绑定新值
- 使用 ng 模型选择未选择正确的选项
- Ext JS 4.2:复选框模型选择问题
- 无法按模型选择元素