我使用ko绑定了一个select
元素,并且它完美地显示了数据。
<select name="assetTypeID"
class="form-control"
id="assetTypeID"
data-bind="options: $root.personalassettype_dd,
optionsValue: 'id',
optionsText: 'text',
optionsIncludeDestroyed: true,
value:typeid">
</select>
我想在一个范围内显示此下拉列表的选定值。我在想的是:
<span id="spnassetTypeID" data-bind="text: $root.personalassettype_dd.text"></span>
已经完成了this Stack Overflow question,但这没有用,有什么想法吗?
我现在非常接近答案。如果我写:
<span id="spnassetTypeID" data-bind="text: $root.personalassettype_dd()[0].text"></span>
它适用于我在第0个索引处显示项目的值,因为它是被编码的。
但是当我尝试写这个时:
<span id="spnassetTypeID" data-bind="text: $root.personalassettype_dd()[typeid].text"></span>
它给了我这个错误:
无法解析绑定。
消息:TypeError:无法获取属性&#39; text&#39;未定义或空引用;
绑定值:text:$ root.personalassettype_dd()[typeid] .....
所以这意味着某种程度上它没有得到typeid
&#39;当我用它代替数组索引时。
注意:我也尝试在引号中传递typeid,但这不起作用。
答案 0 :(得分:2)
您提供的帖子链接有正确答案。
spnassetTypeID
中的文字绑定应具有select
元素中值的值。
另外,请删除optionsValue
绑定。
使用optionsValue
用于敲除以确定将使用对象的哪个属性(来自personalassettype_dd
的项目)。例如,如果我将optionsValue
更改为text
,那么typeId
的值将是所选对象的text
。如果我删除了optionsValue
,则整个所选对象的值将为typeId
。
有关使用标记的最小示例,请参阅此fiddle。
<select name="assetTypeID" class="form-control" id="assetTypeID" data-bind="options: $root.personalassettype_dd, optionsText: 'text', optionsIncludeDestroyed: true,value:typeid"></select>
<span id="spnassetTypeID" data-bind="text: $root.typeid().text"></span>