【发布时间】:2015-05-29 02:19:27
【问题描述】:
我正在使用 Knockout 和这样的选择:
function journal(data) {
this.id = ko.observable(data.ID);
this.name = ko.observable(data.Name);
}
var self = this;
self.journals = ko.observableArray([]);
$.getJSON("/JournalEntries/GetJournalsList", function (data) {
var mappedJournals = $.map(data, function (item) { return new journal(item) });
self.journals(mappedJournals);
});
self.getData = function(journalid) {
alert(journalid);
};
在 HTML 部分是:
<select data-bind="options: $root.journals, optionsCaption: 'Choose...', value: 'id', optionsText: 'name', event:{ change: $root.getData }"></select>
而且它没有返回一个 ID,只是 '[Object object]'
我做错了什么?
【问题讨论】:
-
打开开发者工具并将其记录到控制台而不是警报。对象包含什么?另外,如果这不能证明是多事的,请尝试创建一个新的 observable,例如
var test = ko.observable();并将其用作您的value.. 就像value: test,.. 并提醒它,看看您得到了什么...例如示例3 在docs