friend.toLowerCase不是函数。应用离子的Searc函数时出错

时间:2018-07-30 10:03:54

标签: json angular typescript ionic-framework ionic3

我收到此错误“ friend.toLowerCase”不是一个函数。应用离子的searc函数时出错。程序中唯一不同的是,我没有JSON项目列表,而是每个项目有5个项目的列表,例如friend.namefriend.status等。我改变了几件事,例如离子列表称为项目,我的好友列表。我认为该错误可能是由于名称混乱引起的。但是我没有发现错误。

HTML

<ion-searchbar (ionInput)="getFriends($event)"</ion-searchbar>
...
<ion-item *ngFor="let friend of friendsList">
...
<h2>{{friend.name}}</h2>
...

TS

 export class RankfriendsPage {
      friendsList;

     constructor(public navCtrl: NavController, public navParams: NavParams) {
       this.initializefriendsList();
  }

  initializefriendsList() {
    this.friendsList = [
     {
          "name": "Alice",        //list example
          "status": "Online",
          "img": "img/6.jpeg",
          "img2": "img/33.jpeg",
          "text": "+ADD"
        },
    ];

      }




       getFriends(ev) {
          // Reset items back to all of the items
          this.initializefriendsList();

          // set val to the value of the ev target
          var val = ev.target.value;

          // if the value is an empty string don't filter the items
          if (val && val.trim() != '') {
            this.friendsList = this.friendsList.filter((friend) => {
              return (friend.toLowerCase().indexOf(val.toLowerCase()) > -1);
            })
          }
        }

3 个答案:

答案 0 :(得分:2)

问题是因为没有朋友对象具有toLowerCase()函数,我想您需要这样做,

 this.friendsList = this.friendsList.filter((friend) => {
    return (friend.name.toLowerCase().indexOf(val.toLowerCase()) > -1);
 })

答案 1 :(得分:1)

friend = {
  "name": "Alice",
  "status": "Online",
  "img": "img/6.jpeg",
  "img2": "img/33.jpeg",
  "text": "+ADD"
}

您会看到那里没有toLowerCase属性。

如果要使用它,请在诸如friend.name之类的字符串上使用它。

答案 2 :(得分:1)

朋友是一个对象,并且该对象没有toLowerCase()属性。

您只能将toLowerCase()应用于字符串。

您可以使用friend.status.toLowerCase(),friend.name.toLowerCase()等