我正在尝试将下拉列表(剑道下拉)使用的绑定设置为完整对象。我正在使用 Knockout-Kendo 来完成绑定,但我不认为 kendo 的东西或 knockout-kendo 的东西是我的问题的一个因素。
例如我有以下对象
var model = {
"Client": null,
"Clients": [
{
"CompanyAccount": {
"RelationshipManager": {},
"CompanyAccountId": 1,
"Name": "My Company Name",
"PhoneNumber": "(555) 555-5555",
"Address": {
"State": {
"StateId": 6,
"Name": "New York",
"Abbreviation": "NY"
},
"AddressId": 1,
"Street1": "123 Any Street",
"Street2": null,
"City": "New York",
"StateId": 6,
"Zip": 12345
}
},
"ClientId": 1,
"Name": "New Client 1/30/2013",
"CompanyAccountId": 1,
"ContactName": null,
"Salutation": null,
"ClientAddress": null,
"OfficePhoneNumber": null,
"OfficePhoneExtension": null,
"MobilePhoneNumber": null,
"Email": null,
"TrackingState": 0
}
]
}
}
我使用敲除映射插件将所有的东西变成一个可观察的。
var viewModel = ko.mapping.fromJS(model); ko.applyBindings(viewModel);
我的 html 绑定看起来像这样
<select data-bind="kendoDropDownList: { dataTextField: 'Name', optionLabel: 'Select An Client...', dataValueField: 'ClientId', data: Clients, value: Client }"></select>
但我想用像这样的Client
数据来设置属性
Client: {
"CompanyAccount": {
"RelationshipManager": {},
"CompanyAccountId": 1,
"Name": "My Company Name",
"PhoneNumber": "(555) 555-5555",
"Address": {
"State": {
"StateId": 6,
"Name": "New York",
"Abbreviation": "NY"
},
"AddressId": 1,
"Street1": "123 Any Street",
"Street2": null,
"City": "New York",
"StateId": 6,
"Zip": 12345
}
},
"ClientId": 1,
"Name": "New Client 1/30/2013",
"CompanyAccountId": 1,
"ContactName": null,
"Salutation": null,
"ClientAddress": null,
"OfficePhoneNumber": null,
"OfficePhoneExtension": null,
"MobilePhoneNumber": null,
"Email": null,
"TrackingState": 0
}
我只能弄清楚如何使用“1”或“New Client 1/30/2013”等数据设置属性
* 编辑 我正在尝试设计这个,因为我缺乏使用实体框架的经验。如果我有一个外键和一个与我的模型中的外键绑定的对象,该外键会发送给客户端。调用 SaveChanges() 时更新外键但不更新模型会导致模型上出现不一致的状态异常。我认为我现在最好的方法是创建一个没有这些对象的 ViewModel(仅包含 ForeignKey Id)。