【发布时间】:2021-08-19 12:05:27
【问题描述】:
在我的网站上,我有两个下拉列表:工作用户和合同。更改工作用户后,合同的选项会更新:
Javascript:
function PageViewModel() {
var self = this;
self.workuser_id = ko.observable();
self.contract_id = ko.observable();
self.selectedWorkuserActiveContracts = ko.observableArray([]);
self.workuser_id.subscribe( () => {
$.get('/IncomeReportsApi/Contracts'
, { workuser_id: self.workuser_id() }
, (responseData) => {
self.activeContractsWithSelectedUser(responseData);
});
});
self.workusers = ko.observableArray([
{ workuser_name: 'loading...', workuser_id: -1, disable: ko.observable(true)},
]);
$.get('/IncomeReportsApi/Workusers', {}, (responseData) => {
responseData.unshift({ workuser_name: 'select workuser', workuser_id: -1, disable: ko.observable(true) })
self.workusers(responseData);
});
HTML:
<select data-bind="options: $root.workusers
, optionsText: 'workuser_name'
, optionsValue: 'workuser_id'
, selectedOptions: -1
, value: workuser_id
">
</select>
<select data-bind="options: $root.activeContractsWithSelectedUser
, optionsText: 'contract_description'
, optionsValue: 'contract_id'
, selectedOptions: -1
, value: 'contract_id'
">
</select>
我们遇到了一个奇怪的错误。工作用户下拉列表在更新值的情况下工作得很好。 selectedWorkuserActiveContracts 数组已正确填充选择中的选项。
但是,contract_id 保持未定义,并且在更改下拉列表中的选定选项后不会更新。
我在 StackOverflow 上查看了相关问题,但似乎没有一个是相同的问题。
请帮忙。
【问题讨论】: