【发布时间】:2014-02-18 17:23:43
【问题描述】:
我想在我的 optionsText 字段中组合两个返回值,我认为这很简单,但我显然错了。我还在使用普通视图模型之外的选项字段的值。这是原文:
<select style="width: 180px" data-bind="visible: false, value: fields.person, options: $root.extra.personList, optionsText: 'FirstName', optionsValue: 'LastName' }, select2: {}">
这很好用,显示人的名字并将值设置为姓氏。
下一段会抛出错误:
<select style="width: 180px" data-bind="visible: false, value: fields.person, options: $root.extra.personList, optionsText: function (item) { return item.FirstName() + '-' + item.LastName() }, optionsValue: 'LastName', select2: {}">
未捕获的类型错误:对象# 的属性“FirstName”不是函数
【问题讨论】:
-
你确定
FirstName和LastName是可观察的吗?如果你不确定,试试这个:ko.unwrap(item.FirstName) + '-' + ko.unwrap(item.LastName) -
我不确定,我会试试看。
-
在开始将其添加到视图中之前,请考虑将该函数移动到视图模型中并调用它。它将导致更多更简洁的代码。
-
@JeffMercado 这个,把它改成
ko.computed。 -
谢谢 sroes,我没有管理以前的模型,所以我不知道它们是不可观察的。你能回答我吗?