首页 > 解决方案 > 使用 Knockout 从数组中设置正确文本时遇到问题

问题描述

我正在循环一个数组:

 <tbody data-bind="foreach: devices">

我的一个专栏拥有一个clientId

<td  data-bind="text: clientId"></td>

但不是那个clientId,我想输出lastName,它位于另一个客户端对象的observableArray中:

let Client = function(clientId, lastName){
    this.clientId   = ko.observable(clientId);
    this.lastName = ko.observable(lastName);
}

self.client           = ko.observableArray();

所以不知何故,在我的表格列中,我需要搜索客户端数组,找到当前的 clientId(我们在循环中),然后打印出 TD 中的 lastName 而不是 clientId。

谁能帮我吗?

谢谢你。

标签: javascriptarraysknockout.js

解决方案


有了$root你就可以得到数据模型的根实例,这样就可以在client() observableArray中找到客户端了。假设你findClient(id)在 root 中有一个函数,你应该:

<td data-bind="text: $root.findClient(clientId())"></td>

推荐阅读