上面建议的方法会让我为模型中的每个 ID/Name 对创建一个计算值。
我写了一个自定义绑定,支持这一点。所以现在,我可以传入我的对象并获取“名称”字段。
希望这可以帮助:
HTML 绑定:
<span>Agency: </span><span data-bind="keyvalue:Agency,data:'Name'"></span>
HTML 选择:
<select id="selectAgency" data-bind="options: $root.agencies,optionsText: 'Name',optionsValue: function(item){return item;}, optionsCaption: 'Agency', value: Agency"></select>
JavaScript
ko.bindingHandlers.keyvalue = {
update: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
var value = valueAccessor();
var allBindings = allBindingsAccessor();
var field = allBindings.data;
if (value() !== undefined) {
$(element).text(value()[field]);
}
}
};