对ngClass的函数调用不起作用

时间:2017-07-21 13:26:45

标签: function firebase firebase-realtime-database ionic2

我遇到了一个问题,一个ngClass和一个用Ionic 2和Firebase构建应用程序的功能。 该函数确实有效,但该函数的值不在HTML代码中。我以此为例:https://codepen.io/andre13/pen/oecgi

html和函数调用如下所示:

<button  ion-button class="chatbutton" [ngClass]="compareUser(user.$key)"
(click)="gotoDoctorChat(user.$key)" >{{user.naam}} </button>

该功能如下所示:

  compareUser(uid){
this.angFire.database.object('/users/' + uid +'/'+ this.coach1+'red').subscribe(snapshot=>{
  console.log("snapshot.tostring = " + snapshot.$value);
  if(snapshot.$value === '0'){
    return 'unread';
  }else{
    return null;
  }
})

};

CSS看起来像这样:

.unread{
    background-color: red!important;
}

请询问是否有不明确的事情。

2 个答案:

答案 0 :(得分:0)

尝试使用单引号(')包围,如下所示

return "'unread'";

并确保您已在主要组件中导入了正确的模块

import { NgClass } from '@angular/common';

答案 1 :(得分:0)

原因是因为函数compareUser总是在解析内部函数调用之前返回 undefined

你可以用以下方法测试:

console.log(compareUser(aUID));

如果不了解更多逻辑/要求,很难建议替代方案。