javascript - 如何连接文本绑定(bind)中使用的可观察值的值?

标签 javascript knockout.js

填充用户数据后,我想将他们的全名显示为列表元素。

数据绑定(bind)设置如下:

<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}
...

有谁知道在以这种方式绑定(bind)列表的情况下如何正确显示全名?

最佳答案

要将多个 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>

关于javascript - 如何连接文本绑定(bind)中使用的可观察值的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27912706/

相关文章:

javascript - 如何使用 Python 在字符串中的每个 ] 后面添加逗号?

javascript - 使用 JavaScript 更改 <span> 元素的类

javascript - 更改 react 钩子(Hook)后如何执行函数?

javascript - NodeJS - 需要帮助理解同步依赖的 MySQL 查询代码并将其转换为可用的代码

javascript - Knockout.js - 值更新 : afterkeydown too fast

当我使用 jquery .val ('xyz' 时,Knockout.js 绑定(bind)输入值未更新)

javascript - 关于 promise 的一个问题

knockout.js - 带有 Knockout 和 RequireJS 的自定义绑定(bind)处理程序

knockout.js - Knockout js循环到一个值

knockout.js - 在knockout.js 中,为什么 "this"被分配给 "self"?