KnockoutJS-将值加载到下拉列表.“选定值”始终为null
KnockoutJS - Loading values to dropdown . Selected Value is null always
这是我的视图模型,它有助于加载要下拉的项目正在加载项,但当我检查元素"value"属性为空时。如何获取选定的值?
$(function () {
tss.Department = function (selectedItem) {
var self = this;
self.id = ko.observable();
self.description = ko.observable();
self.isSelected = ko.computed(function () {
return selectedItem() === self;
});
self.stateHasChanged = ko.observable(false);
};
tss.vm = (function () {
var metadata = {
pageTitle: "My App"
},
selectedDepartment = ko.observable(),
departments = ko.observableArray([]),
sortFunction = function (a, b) {
return a.description().toLowerCase() > b.description().toLowerCase() ? 1 : -1;
},
selectDepartment = function (p) {
selectedDepartment(p);
},
loadDepartments = function () {
tss.departmentDataService.getDepartments(tss.vm.loadDepartmentsCallback);
},
loadDepartmentsCallback = function (json) {
$.each(json, function (i, p) {
departments.push(new tss.Department(selectedDepartment)
.id(p.DepartmentId)
.description(p.Description)
);
});
departments.sort(sortFunction);
};
return {
metadata: metadata,
departments: departments,
selectDepartment: selectDepartment,
loadDepartmentsCallback: loadDepartmentsCallback,
loadDepartments: loadDepartments,
choices: choices,
selectedChoice: selectedChoice
};
})();
tss.vm.loadDepartments();
ko.applyBindings(tss.vm);
});
这是我的HTML
<select data-bind="options:departments, value:selectDepartment,
optionsText: 'description', optionsCaption:'Select a product ...'">
</select>
此外,排序也没有发生。departmentDataService用于调用外部数据。同时具有"id"answers"description"
我还尝试将值设置为"Id",但没有成功。
您不应该使用额外的函数selectDepartment
将值传递给可观察对象,而是直接将可观察对象绑定到选择框的值属性:
<select data-bind="options:departments, value:selectedDepartment, ...
(记得导出selectedDepartment
可观测)
value属性不仅用于在视图与视图模型之间传递当前值,还用于在视图和视图模型之间传达当前值:设置所选选项。因此,绑定到只提供"写入"功能的函数是不够的。
如果你需要对所选部门的变化做出反应,你可以订阅observable(这在官方文档中有解释)。
相关文章:
- 如何在javascript中获取不同的选定值
- 如何在 Javascript/jQuery 中获取一些随机下拉列表的选定值
- (extjs)获取表单中单选按钮的选定值.不返回该值
- 通过点击-PHP/HTML发布列表中的选定值
- 如何使用JavaScript/JQuery获取下拉列表的选定值
- 如何使用淘汰从下拉列表中获取选定值
- angularjs文本区域-如何使其与angularjs下拉列表中的选定值保持同步
- 如何使用jquery打印多选下拉列表中的选定值
- 如何在 ReactJS 中获取下拉菜单的选定值
- 如何使用JavaScript在JSP页面上从下拉列表中呈现选定值的属性
- 根据下拉列表中的选定值启用文本框
- 在URL中传递下拉列表的选定值
- 将选定值数组发送到控制器-MVC
- 将Bootstrap下拉列表中的选定值传递到服务器.R在Shiny
- 正在分析下拉到下一页的选定值
- 根据DropDown ID获取DropDownListFor的选定值
- 如何获取网格格式的表中的下拉选定值
- 根据下拉框的选定值,我需要更改laravel 5中的另一个字段值
- Yii2在从属下拉列表中指定选定值
- KnockoutJS-将值加载到下拉列表.“选定值”始终为null