我是x-editable和knockout的新手,任何人都可以帮我解释为什么以下代码没有加载选择列表,因为它会出现错误"加载列表时出错"
$(document).ready(function () {
var viewModel = function () {
var self = this;
self.id = ko.observable();
self.firstName = ko.observable();
self.lastName = ko.observable();
self.genders = ko.observableArray( [
{ id: 1, text: "Male" },
{ id: 2, Description: "Female" }
]);
self.gender = ko.observable();
self.firstName = ko.observable('John');
self.lastName = ko.observable('Doe');
self.gender = ko.observable(2);
}
ko.applyBindings(new viewModel());
EditableManager.registerEditable();
EditableManager.onSuccess = function (result) {
};
});
HTML
<span data-type='select' data-showbuttons="false" data-bind=" editable: gender, editableOptions: {pk: id, options: genders, optionsText: 'text', optionsValue: 'id'}"></span>
对此的任何帮助将不胜感激,
-George
答案 0 :(得分:1)
在editableOptions中,将“选项”更改为“来源”。
在self.genders中,使用'value'和'text'定义对象键,因为我无法使optionsText和optionsValue起作用。
将名称更改为x-editable中的default options后,它应该有效(JS Bin)。
答案 1 :(得分:0)
如果你想使用参数options
,你需要稍微改变一下,如果对对象/数组使用ko.mapping.fromJS
,这一点尤其重要
<强>视图模型强>
ko.mapping.fromJS({
selected: "a",
myoptions: [{text:"AA", value:"a"},{text:"BB", value:"b"}]
})
选择强>
data-bind=" editable:selected, editableOptions:{
type:'select',
options:myoptions,
optionText:'text',
optionsValue:'value'} "