二选择计算淘汰
Two Select computed Knockout
我尝试用Knockout绑定两个计算的select:-页面加载时填充第一个选择(DropDownLinee)-当用户在第一个选择上选择一个项目时,第二个选择(DropDownCorse)被填充
这是一个例子:
<select id="DropDownLinee" data-bind="options: ArrayLinee, optionsText: 'NomeLinea', optionsValue: 'NomeLinea', value: selectedLinea " data-toggle="dropdown"></select>
<select id="DropDownCorse" data-bind="options: ArrayCorse, optionsText: 'CodiceCorsa', optionsValue: 'CodiceCorsa', value: selectedCorsa " data-toggle="dropdown"></select>
function LineeViewModel() {
var self = this;
self.selectedLinea = ko.observable();
self.selectedCorsa = ko.observable();
self.ArrayLinee = ko.observableArray([]);
self.ArrayCorse = ko.observableArray([]);
$.getJSON('/Home/GetLines', function (data) {
self.ArrayLinee(data);
});
self.ArrayCorse = ko.computed(function () {
$.getJSON('/Home/GetRides',
{
LineaSelezionata: self.selectedLinea(),
DirezioneSelezionata: $('input[name=radio4]:checked', '.areaselezione').val()
},
function (data) {
debugger;
self.ArrayCorse(data);
});
});
}
lineeVM = new LineeViewModel();
ko.applyBindings(lineeVM);
当我检查加载"DropDownCorse"时,我出现了以下错误:未捕获错误:除非指定"写入"选项,否则无法将值写入ko.computed。如果您希望读取当前值,请不要传递任何参数。
有人能帮我解决这个问题吗???
感谢提前问候多纳托
您想要使用subscribe
,而不是computed
。
self.selectedLinea.subscribe(function (newSelection) {
$.getJSON('/Home/GetRides',
{
LineaSelezionata: newSelection,
DirezioneSelezionata: $('input[name=radio4]:checked', '.areaselezione').val()
},
function (data) {
debugger;
self.ArrayCorse(data);
});
});
相关文章:
- 根据元素和容器大小计算边距
- 从Rally获取一个特定的标记,以便计算另一个字段中的值
- 使用D3.js计算带有字母间距的文本长度
- 淘汰搜索/筛选
- 使用CSS或JavaScript计算分页符的数量
- 消息显示之外的淘汰验证
- 可以't计算自定义谷歌地图的js
- 如何计算每个元素's的高度,并将这些值用作函数中的变量
- 使用淘汰缓存计算值
- 淘汰计算与订阅、时间问题
- 计算字段淘汰相同的值
- 如何在淘汰.js中实现可计算的可观察量
- 淘汰计算和输入验证
- 在javascript显示模块模式中计算的淘汰设置
- 二选择计算淘汰
- 淘汰:自定义绑定更新不触发计算字段
- 计算淘汰赛中某些输入的和
- Ko.computed()不计算顶级对象(淘汰映射)
- 淘汰排序与计算观察不工作
- 淘汰-计算的可观察输入没有被更新