2
也许我误解了这是如何工作的。我想使用knockout.js来填充选择元素选项。我使用下面的标记来实现这一目标:knockout.js没有正确设置选项
<select data-bind="options: type_options, optionsText: function(item) {
return item.text;
}, optionsValue: function(item) {
return item.value;
}, optionsCaption:'Select a type...',
value: type">
下面是相关型号代码:
var myModel = {
type: ko.observable(),
type_options: ko.observableArray([
{text: "String 1", value:1},
{text: "String 2", value:2},
{text: "String 3", value: 3},
{text: "String 4", value: 4},
{text: "String 5", value: 5}
]),
}
现在下拉正确呈现,所有正确的文本和值,但是当我选择下拉菜单中的选项不会正确设置“类型”的值。
举例来说,如果我选择了标有“字符串4”的选项,并在浏览器中运行以下命令:
myModel.type()
我希望它返回值“4”。相反,我得到的对象全部对象:
Object
text: "String 4"
value: 4
__proto__: Object
我的问题是如何获得淘汰赛设置类型的基于期权的价值属性的值,而不是整个对象?
嗨,谢谢你的小提琴。我实际上使用视图模型的json对象版本(请参阅上面我更新的代码)。我尝试将其更改为函数形式,并发现左侧和右侧的问题,与此问题无关。你知道如何用JSON形式的视图模型来做到这一点吗? – aamiri
@aamiri我已经更新了小提琴使用对象viewModel方向。 – Rynan
我不知道为什么这不是为我工作,但我重写它,它的工作。我希望我知道它为什么不起作用,但感谢你的帮助。 – aamiri