如何使用angular2

时间:2018-04-30 05:28:48

标签: angular typescript

我有用户部分字段,其中我有用户,所以现在我必须在用户下面显示最后一条消息。如何让消息显示在那里。

HTML:

<mat-tab label="Active">
          <mat-icon for="search">search</mat-icon>
          <input type="search" name="search" class="search" placeholder="Company">
          <ul>
            <li *ngFor="let message of activeMessages" (click)="showMessage(message)" [class.activeShow]="message.id == message_id">
              <span>{{message.updated_at  | date:'dd.MM.yyyy'}}</span>
              <img style="width: 40px;" [src]="message.from_user_image || '../assets/images/msg.png'"/>
              <p style="padding-top: 16px;display: inline;">{{message.from_user_name}}</p>
              <p style="padding-top: 10px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;"><b>{{message.text}}</b></p>
            </li>
          </ul>
        </mat-tab>

这是我添加的虚拟,我需要在那里显示最后一条消息对话。

<p style="padding-top: 10px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;"><b>{{message.text}}</b></p>

最后一条消息对话就在这里。

loadMessages() {
    this.service
          .getMessages()
          .subscribe(
            data => {
              this.messagesdata = data;
              this.activeMessages = data.filter(msg => msg.active == true && msg.from_user_name !== 'Anonymus' && msg.messages.length > 0)
              this.closedMessages = data.filter(msg => msg.active == false && msg.from_user_name !== 'Anonymus' && msg.messages.length > 0);
              if (this.activeMessages.length > 0) {
                if(!this.message_show) {
                  var test = this.message_show = this.activeMessages[0];
                  this.message = true;
                  this.message_id = this.activeMessages[0].id;
                  this.message_show.messages.map(function(msg) {
                    if(msg.from_user_id == test.from_user_id) {
                      msg.from_user_image = test.from_user_image;
                    } else {
                      msg.from_user_image = test.to_user_image;
                    }
                    if(msg.to_user_id == test.to_user_id) {
                      msg.to_user_image = test.to_user_image;
                    } else {
                      msg.to_user_image = test.to_user_image;
                    }
                  })
                }
              }             
            },error => {});
  }

在这个i get data字段中的数组

var test = this.message_show = this.activeMessages[0];

所以在activeMessages [0] .messages我得到消息列表,我希望最新的消息以html显示。

安慰: enter image description here

2 个答案:

答案 0 :(得分:1)

您可以在组件中获取activeMessages的最后一个元素,如下所示:

let lastMessage:any = this.activeMessages[0][this.activeMessages[0].length-1];

然后访问html中的lastMesage变量。如果你想要lastMessage文本,你应该在你的html中这样访问。

<p> {{lastMessage.text}} </p>

答案 1 :(得分:1)

将以下内容替换为

   <p style="padding-top: 10px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;"><b>{{message.text}}</b></p>   

 <p style="padding-top: 10px;white-space: nowrap;overflow: hidden;text- 
     overflow: ellipsis;"><b>{{message.messages[message.messages.length -1].text}}</b></p>