如何从下拉列表中由可观察数组填充的选定项中检索完整对象
How do I retrieve the full object from a selected item in dropdown that was filled by an observable array?
假设我有下拉列表:
<select id="department-options"
data-bind="options: departments, optionsText: 'Name', optionsValue: 'DepartmentId', value: departmentId" />
这个下拉列表通过 KNOCKOUT js 绑定到一个复杂对象:
this.departmentId = ko.observable();
this.departments = ko.observableArray([]);
this.setDepartments = function(){
$.get('myserviceurl', departments);
}
列表很好,值可以很好地更新视图模型中的部门 ID。问题是该服务实际上返回包含多个属性的对象列表。下拉列表的绑定仅定义在何处获取文本、在何处获取值以及如何处理所选值。在选择更改时,我还想与这些对象的其他成员一起做一些其他事情。
例如,如果加载到 this.departments 中的对象包含一个名为 subdepartmentOfId 的属性,我如何检索列表中当前选定项的该属性?我的第一直觉是抓住选定的索引并在可观察数组中找到它,但这听起来不可靠,似乎有一种更简单的方法可以做到这一点。
我几乎一发帖就想通了:
<select id="department-options"
data-bind="options: departments, optionsText: 'Name', optionsValue: $root, value: selectedDepartment" />
将选项值更改为$root
然后通过this.selectedDepartment().subdepartmentOfId
访问属性
相关文章:
- 如何从类关系中检索对象列表
- 检索对象项的路径
- 正在根据ID从数组中检索对象
- 以文本形式检索对象元素中的SVG Dom
- AJAX来检索对象并将其存储在变量中
- 如何在帮助程序或事件中检索对象的内部_id
- 如何在 ydn-db 中检索对象的排序列表
- Javascript - 检索对象属性路径
- 从具有特定参数的数组中检索对象
- 如何从jsonString中检索对象
- 检索对象自己的标记
- 从URL检索对象/资源
- 如何从Google Apps脚本项目属性中存储和检索对象
- 如何从GTM数据层中检索对象
- JQueryAJAX检索对象数组
- 正在检索对象中嵌套的值
- 使用PHP从JSON中检索对象
- 如何从具有给定(键、值)对的长列表中检索对象
- 使用承诺从 mongo db 检索对象时出错
- 在树状的angularjs模型中检索对象