0

我一直在摆弄 KO.js,我已经下载了 x7Chat,但是为了让 Chat 满足我的需要,还有很多工作要做。一件事是在线列表,它是主聊天室中在线的用户列表。

管理员应该在最上面,并且在他们的名字标签上有不同的样式表,这样人们就知道这些是管理员。现在,在数据库中,所有管理员在名为“group_id”的行中都将值设置为“1”,而所有其他用户的值都设置为“0”,现在问题是我对 ko.js 不是很好, PHP是我更了解的东西。

这是在线列表 HTML 代码:

                <div id="onlinelist" data-bind="foreach: active_room().users()">
                <?php if($access_acp) { ?>
                    <div id="show_user_profile" class="onlineuser" data-bind="click: $root.show_user_profile"><a href='#' data-bind="text: group_id"></a></div>
                <?php } else { ?>
                    <div id="start_private_chat" class="onlineuser" data-bind="click: $root.start_private_chat"><a href='#' data-bind="text: user_name"></a></div>
                <?php } ?>
            </div>

我知道我需要给你们更多的代码,所以我会在下面发布这个文件的完整代码的链接,谢谢你的帮助! http://pastebin.com/nwdPebHX

// FiNCH
EDIT
我会试试的!我还有另一个我一直在努力解决的问题......我希望数据库中的 group_id 是一个值,就像 user_id 在 Javascript 中一样。我似乎无法让它工作!我已经在我认为应该在的地方添加了这个如您所见,我将 group_id 添加到该函数中,但它不会给我数据库中的值,必须有一个 PHP 文件提供信息,但我已经找了几个小时并且找不到它...有什么想法吗?

this.UserRoom = function(user) {
    this.user_id = user.user_id;
    this.room_id = user.room_id;
    this.group_id = user.group_id;
    this.user_name = acceptSwedish(user.user_name);
    this.refreshed = 1;
}
4

1 回答 1

0

例如,如果你想设置不同css的管理员和普通用户,你可以使用css 绑定
CSS

.admin
{
   color: red;
}

看法

<div id="start_private_chat" 
     class="onlineuser" 
     data-bind="click: $root.start_private_chat, css: {admin : group_id() == 1}">
   <a href='#' data-bind="text: user_name"></a>
</div>    

样式绑定

<div id="start_private_chat" 
     class="onlineuser" 
     data-bind="click: $root.start_private_chat, style: {color : group_id() == 1 ? 'red' : 'black'}">
   <a href='#' data-bind="text: user_name"></a>
</div>   

编辑:
您可以将所有用户划分为具有ko.utils.arrayFilter功能的两个组,例如

<div id="onlinelist" 
     data-bind="foreach: ko.utils.arrayFilter(active_room().users(), function(user)
                                              {
                                                 return user.group_id() === 1;   
                                              })">
  <!-- show admins -->
</div>
<!-- separator -->
<div id="onlinelist" 
     data-bind="foreach: ko.utils.arrayFilter(active_room().users(), function(user)
                                              {
                                                 return user.group_id() === 0;   
                                              })">
  <!-- show regular users -->
</div>
于 2013-11-07T17:44:53.567 回答