如何连接文本绑定中使用的可观察量的值
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>
但是,理想情况下,您应该改用计算的可观察量:
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>
对于更复杂的模型,您可以考虑使用计算的可观察量,而不是过度填充视图/html 文件:
this.FullName = ko.computed(function () {
return this.Firstname() + ' ' + this.LastName();
}
相关文章:
- 启用具有多个布尔可观察标志的绑定
- 为什么prototypjs观察到回调函数有绑定
- 敲除:可观察数组没有被正确绑定——只有1个结果显示,而api返回6
- KO 绑定复选框:从代码更改“选中”属性,不更改可观察字段
- 动态地向可观察数组中的特定项添加绑定(例如hasfocus)
- 当通过Ajax成功回调更新可观察数组时,启用绑定中断
- knockoutjs上的绑定按键事件,可观察到未填充
- 更改可观察数组会更改自定义绑定处理程序knockoutjs的可见性
- Knockout,无法解析空可观察数组中的绑定错误
- Knockout.js用单个json对象绑定一个可观察对象
- 去掉js可观察数组和复选框,选中绑定失败
- 知道可观察的在根模型中的位置,在 foreach/后代绑定中被淘汰
- 根据某些条件将 JS 绑定到可观察对象内的数组元素
- 自定义绑定到可观察数组,不调用更新函数
- KNOCKOUTJS 将多个输入元素绑定到一个可观察量
- 如果模板内的绑定现在不显示可观察量所包含的值,则挖空
- 如何连接文本绑定中使用的可观察量的值
- Knockout.js - 跨 iframe 可观察绑定
- 如何清除/删除Knockout.js中的可观察绑定
- Knockout可观察绑定仅在第一次ajax调用后更新