[英]knockout.js not setting select option properly
也许我误会了它的工作原理。 我想使用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}
]),
}
现在,下拉列表可以正确呈现,并带有所有正确的文本和值,但是当我从下拉列表中选择一个选项时,它不能正确设置'type'的值。
例如,如果我选择了标记为“字符串4”的选项,然后在浏览器中运行以下命令:
myModel.type()
我希望它返回值“ 4”。 相反,我得到对象的整个对象:
Object
text: "String 4"
value: 4
__proto__: Object
我的问题是如何根据选项的value属性而不是整个对象来剔除以设置type的值?
好吧,您应该能够在选项数组而不是函数中传递变量的文本。 我不知道这是引起问题的原因,但您的标记看起来会更好
<select data-bind="options: type_options, optionsText: 'text', optionsValue: 'value', optionsCaption:'Select a type...', value: type"></select>
那应该可以让您得到想要的东西,有关完整示例,请参阅小提琴 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.