我有一个函数可以将一个对象放入一个名为“detailedStudent”的可观察对象中,它将以模式显示学生的一些字段。这是问题所在:
- 我从一个值为 false 的字段开始。(包括InStudentSiteResults)
- 我在“detailedStudent”中设置了“学生”对象,该对象显示下拉列表(模拟模式弹出窗口)。
- 该字段的值设置为 true,这是下拉列表中的第一个选项。
这是一个重现问题的 jsFiddle:http: //jsfiddle.net/62fDB/16/
我有一个函数可以将一个对象放入一个名为“detailedStudent”的可观察对象中,它将以模式显示学生的一些字段。这是问题所在:
这是一个重现问题的 jsFiddle:http: //jsfiddle.net/62fDB/16/
下拉选项值是字符串(不是布尔值)。像这样更新您的数据初始化
...
"IncludeInStudentSiteResults": "false",
...
JSfiddle:http: //jsfiddle.net/62fDB/22/
或使用以下帖子中的解决方案Knockoutjs (version 2.1.0): bind boolean value to select box
这是你的版本:
function StudentViewModel() {
var self = this;
this.students = ko.observableArray([]);
this.detailedStudent = ko.observable();
this.clickMe = function(student) {
alert(student.IncludeInStudentSiteResults());
self.detailedStudent(student);
alert(student.IncludeInStudentSiteResults());
}
}
尝试使用我的版本:
function StudentViewModel() {
var self = this;
this.students = ko.observableArray([]);
this.detailedStudent = ko.observable();
this.clickMe = function(student) {
alert(student.IncludeInStudentSiteResults());
self.detailedStudent(ko.observable(student));
alert(student.IncludeInStudentSiteResults());
}
}
JSfiddle:http: //jsfiddle.net/62fDB/23/
这是一个包含我的问题答案的小提琴。我不喜欢我必须编写自定义绑定,但替代方法是使用枚举而不是数据绑定到布尔值。