在ngClass条件函数中传递参数

时间:2017-03-09 15:58:56

标签: angular ng-class ngfor

我有一个用户选择滑块,其中包含用户名列和个人资料图片列表。我正在尝试为用户的滑块创建一个选择和取消选择机制。

我有一组用户正在使用*ngFor进行解析。当点击任何这些用户时,我正在添加课程&#34; active&#34; <li>中当前用户的*ngFor包含用户(第二次点击并删除了课程。)的信息。我还制作了一系列用户ID,点击它们并删除第二次点击的ID。

现在,如果有任何&#34;助手&#34; array(在组件中定义的另一个数组。用户数组和助手数组都来自服务器作为JSON)在当前迭代中用户id等于用户然后&#34;活动&#34;在渲染视图时,应自动添加类。

我正在使用* ngClass添加&#34;活跃&#34;像这样的[ngClass]="{active: checkIfUserIsHelper(friend.id, helpers)}"类。但问题是我无法访问checkIfUserIsHelper函数中的帮助程序。在我的组件中。我试图通过this.helpers访问助手,但它不能正常工作。

我的HTML:

<ul class="slides">
  <li class="select {{friend.id}}" [ngClass]="{active: checkIfUserIsHelper([friend.id], [helpers])}" *ngFor="let friend of friendsList" (click)="addHelper(friend)">
    <div class="">
      <img src="{{friend.profile_image}}" alt="user-img" />
      <p class="flex-caption">{{friend.full_name}}</p>
    </div>
  </li>
  <li *ngIf="friendsList == false" >No friends found</li>
</ul>

我的函数checkIfUserIsHelper:

checkIfUserIsHelper(id: number, helpers: any){
    console.log("Parameters: ",id, helpers);
    //Logic to check presence in array goes here
    return false;
  }

我的函数addHelper:

addHelper(data: Object) {
    let index = this.helpers.indexOf(data);
    if (index >= 0) {
      this.helpers.splice(index, 1);
    } else {
      this.helpers.push(data);
    }
}

如果我在函数调用中使用[]辅助函数,那么朋友是未定义的。

如何解决为所选用户添加类并将其添加到数组的问题?

我的方法是否正确?

0 个答案:

没有答案