Select 敲除映射选择json无效
我是汽车制造商KO的新手。我有以下代码:Select 敲除映射选择json无效,select,data-binding,knockout.js,knockout-mapping-plugin,Select,Data Binding,Knockout.js,Knockout Mapping Plugin,我是汽车制造商KO的新手。我有以下代码: var jData = [ { "Id": 2, "Name": "A" }, { "Id": 3, "Name": "B" }, { "Id": 4, "Name": "C" }] }; var viewModel = ko.mapping.fromJSON(JSON.stringify(jD
var jData = [
{ "Id": 2, "Name": "A" },
{ "Id": 3, "Name": "B" },
{ "Id": 4, "Name": "C" }]
};
var viewModel = ko.mapping.fromJSON(JSON.stringify(jData));
ko.applyBindings(viewModel);
此代码适用于:
<div data-bind="foreach : $data">
<input type="text" data-bind='value: Name' />
<br />
</div>
但如果我想通过地图选择:
<select id="prova" data-bind='options: $data, optionsText: "Name", optionsValue: "Id" , value: Id'></select>
我收到了这个错误
允许解析绑定。
消息:ReferenceError:“Id”未定义;
绑定值:选项:$data,选项text:“Name”,选项value:“Id”,值:Id
怎么了?
谢谢
L问题在于值:Id绑定,Id需要位于“”。此外,应该使用值绑定在下拉列表中设置所选值,只要将其设置为Id,将始终选择值为1的值
<select id="prova" data-bind='options: $data, optionsText: "Name", optionsValue: "Id", value: "Id"'></select>
在这里检查JSFIDLE
问题在于值:Id绑定,Id需要位于“”。此外,应该使用值绑定在下拉列表中设置所选值,只要将其设置为Id,将始终选择值为1的值
<select id="prova" data-bind='options: $data, optionsText: "Name", optionsValue: "Id", value: "Id"'></select>
在这里检查JSFIDLE
问题的根本原因是视图模型不包含Id属性。你应该加上它。我将实现如下内容:
var jData = [
{ "Id": 2, "Name": "A" },
{ "Id": 3, "Name": "B" },
{ "Id": 4, "Name": "C" }]
function ViewModel(){
var self = this;
self.list = ko.mapping.fromJSON(JSON.stringify(jData));
self.Id = ko.observable();
}
var viewModel = new ViewModel();
ko.applyBindings(viewModel);
HTML:
这里有一个工作提示:问题的根本原因是视图模型不包含Id属性。你应该加上它。我将实现如下内容:
var jData = [
{ "Id": 2, "Name": "A" },
{ "Id": 3, "Name": "B" },
{ "Id": 4, "Name": "C" }]
function ViewModel(){
var self = this;
self.list = ko.mapping.fromJSON(JSON.stringify(jData));
self.Id = ko.observable();
}
var viewModel = new ViewModel();
ko.applyBindings(viewModel);
HTML:
这是工作小提琴: