Javascript 我的viewmodel不反映我的选择
我在一个列表中使用了级联dowpdowns。 用户界面工作正常,但基础viewmodel与用户选择不符 我有以下html:Javascript 我的viewmodel不反映我的选择,javascript,knockout.js,data-binding,cascadingdropdown,Javascript,Knockout.js,Data Binding,Cascadingdropdown,我在一个列表中使用了级联dowpdowns。 用户界面工作正常,但基础viewmodel与用户选择不符 我有以下html: <ul data-bind="foreach: selectedExams"> <li> <select data-bind="options: $parent.availableExams, optionsCaption: 'Choisir un type...', optionsText: 'examTypeName', value:
<ul data-bind="foreach: selectedExams">
<li>
<select data-bind="options: $parent.availableExams, optionsCaption: 'Choisir un type...', optionsText: 'examTypeName', value: examtype"></select>
<select data-bind="options: exams, optionsCaption: 'Choisir un examen...' , optionsText: 'examName',value: exam, enable:exams().length"></select>
<a href="#" data-bind="click: $parent.remove">Remove</a>
</li>
</ul>
<button data-bind="click: add">Add</button>
<pre data-bind="text: ko.toJSON($root.selectedExams, null, 2)"></pre>
对于3行不同的选择,结果如下:
[
{},
{},
{}
]
例如,我希望看到:
[
{"SCAN","SCOEUR"},
{"RX", "RBRAS"},
{"IRM", "ITETE"}
]
这可能是一个数据绑定问题,但我不知道从哪里开始调试这种问题
请注意,我正在引导网格中使用此代码
谢谢你的帮助。
提前感谢。问题是您在
selectedExam
构造函数中缺少self
的定义。当前,您的self
实际上引用的是窗口(全局上下文),因此最终返回的是空对象
试试这个:
var selectedExam = function () {
var self = this; // <-- add this
self.examtype = ko.observable(undefined);
self.exam = ko.observable(undefined);
self.exams = ko.computed(function () {
if (self.examtype() == undefined || self.examtype().exams == undefined)
return [];
return self.examtype().exams;
});
}
var selectedExam=函数(){
var self=this;//问题在于,您在selectedExam
构造函数中缺少self
的定义。目前,您的self
实际上是引用窗口(全局上下文),因此返回的是空对象
试试这个:
var selectedExam = function () {
var self = this; // <-- add this
self.examtype = ko.observable(undefined);
self.exam = ko.observable(undefined);
self.exams = ko.computed(function () {
if (self.examtype() == undefined || self.examtype().exams == undefined)
return [];
return self.examtype().exams;
});
}
var selectedExam=函数(){
var self=这个//