如何连接文本绑定中使用的可观察值的值?
How to concatenate values of observables used in a text binding?
填充用户数据后,我想将他们的全名显示为列表元素。
数据绑定设置如下:
<ul id="availableOwners">
<!-- ko foreach: OwnersList-->
<li data-bind="text: FirstName, click: AddOwnerToUser.bind($data), value: Id" style="cursor: pointer"></li>
<!-- /ko -->
</ul>
我想用javascript函数显示全名:
<li data-bind="text: function() { return FirstName + ' ' + LastName }, click: AddOwnerToUser.bind($data), value: Id" style="cursor: pointer"></li>
但是,它按字面意思显示函数定义的列表,如下所示:
function () { return FirstName + ' ' + LastName}
function () { return FirstName + ' ' + LastName}
function () { return FirstName + ' ' + LastName}
...
有谁知道以这种方式绑定列表时如何正确显示全名?
要将多个 observables
连接在一起,您需要使用 ()
.
来评估它们
例如:
<li data-bind="text: FirstName() + ' ' + LastName(), click:AddOwnerToUser.bind($data), value: Id" style="cursor:pointer"></li>
但是,理想情况下,您应该使用 computed observable:
self.FullName = ko.computed(function () {
return self.Firstname() + ' ' + self.LastName();
}
<li data-bind="text: FullName, click:AddOwnerToUser.bind($data), value: Id" style="cursor:pointer"></li>
对于更复杂的模型,与其过度填充 view/html 文件,您可以考虑使用计算的可观测值:
this.FullName = ko.computed(function () {
return this.Firstname() + ' ' + this.LastName();
}
填充用户数据后,我想将他们的全名显示为列表元素。
数据绑定设置如下:
<ul id="availableOwners">
<!-- ko foreach: OwnersList-->
<li data-bind="text: FirstName, click: AddOwnerToUser.bind($data), value: Id" style="cursor: pointer"></li>
<!-- /ko -->
</ul>
我想用javascript函数显示全名:
<li data-bind="text: function() { return FirstName + ' ' + LastName }, click: AddOwnerToUser.bind($data), value: Id" style="cursor: pointer"></li>
但是,它按字面意思显示函数定义的列表,如下所示:
function () { return FirstName + ' ' + LastName}
function () { return FirstName + ' ' + LastName}
function () { return FirstName + ' ' + LastName}
...
有谁知道以这种方式绑定列表时如何正确显示全名?
要将多个 observables
连接在一起,您需要使用 ()
.
例如:
<li data-bind="text: FirstName() + ' ' + LastName(), click:AddOwnerToUser.bind($data), value: Id" style="cursor:pointer"></li>
但是,理想情况下,您应该使用 computed observable:
self.FullName = ko.computed(function () {
return self.Firstname() + ' ' + self.LastName();
}
<li data-bind="text: FullName, click:AddOwnerToUser.bind($data), value: Id" style="cursor:pointer"></li>
对于更复杂的模型,与其过度填充 view/html 文件,您可以考虑使用计算的可观测值:
this.FullName = ko.computed(function () {
return this.Firstname() + ' ' + this.LastName();
}