0

我从如下数组中获取价值:

self.users = ko.computed(function(){
var list = ko.utils.arrayMap(self.tasks(), function(item){
return item.members + item.skype
});
var val = ko.utils.arrayGetDistinctValues(list);
alert(val);
return val;});

它的显示值如下:

user1skype_user1, user2skype_user2

但我的问题是我需要在用户的 foreach 循环中的 html 中显示这个值。我的html代码如下:

<tbody data-bind="foreach: users">
<tr>
 <td>
  <b><span data-bind="text: //membername" /></b>
 </td>
 <td>
  <span data-bind="text : //skypeid"></span>
 </td>
 </tr>
//another fareach loop</tbody>

我通过采用另一种方法创建了 jsfiddle。但它根据tasknos重复。 jsfiddle 在另一种方法

4

1 回答 1

0

我的需要是获得一组用户,无论任务是什么。我添加了一个 javascript 函数来获取单组用户并将其放入 self.users。我已经更新了我的 jsfiddle http://jsfiddle.net/TQXja/9/

self.users = ko.computed(function(){
var distinctUsers = "";
var distinctList = new Array();;

var list = ko.utils.arrayMap(self.tasks(), function(item){
    if(distinctUsers.indexOf("|"+ item.members) == -1)
    {
        distinctUsers += "|"+ item.members;
        return item;
    }
});

//clean empty objects
for(i = 0; i < list.length; i++)
{
    if(list[i] != null)
    {
        distinctList.push(list[i]);
    }
}

return ko.utils.arrayGetDistinctValues(distinctList);});

现在它的工作。

于 2012-12-27T09:12:55.737 回答