显示来自可观察数组的多个值的串联字符串

Showing a concatenated string from multiple values of observable array

我有一个如下所示的可观察数组..

var myObservableArray = ko.observableArray([
    { name: "Bungle", type: "Unknown" },
    { name: "George", type: "Unknown" },
    { name: "Zippy", type: "Unknown" }
]); 

我希望从可观察数组中的元素填充一个 select 列表框,这样选项名称就是 'name' 和 'type' 的连接字符串,例如 "Bungle-Unknown","George-Unknown",.等 选项值只是 'name'.

真诚感谢任何帮助。

谢谢

在 select 控件上的绑定中,您可以使用 optionsText 绑定为您的选项构建标题(参见 http://knockoutjs.com/documentation/options-binding.html,示例 4)。您基本上可以这样做(假设您有另一个名为 selected 的可观察对象来保存下拉列表中的 selected 选项):

<select data-bind="options: myObservableArray,
                   optionsText: function(item) {
                       return item.name + '-' + item.type;
                   },
                   value: selected"></select>