如何在角度2的文本区域中添加新行文本

时间:2019-05-20 04:25:08

标签: angular

我有一个服务来处理服务器中的消息并为它创建一个可观察的服务,如下所示:

serverMessage$: Observable<string>;
private serverMessageSubject: Subject<string>;

constructor() {
this.serverMessageSubject = new Subject<string>();
this.serverMessage$ = this.serverMessageSubject.asObservable();
}

setServermessage(message: string) {
    this.serverMessage = message;
    this.serverMessageSubject.next(this.serverMessage);
}

我正在组件中等待此字符串,并将其添加到我的textarea中,如下所示:

.ts文件

serverMessage: string;

constructor(
    private cs: CommonService
) {
    this.cs.serverMessage$.subscribe((message: string) => {
    this.serverMessage += message;
    });
  }

.html文件

<div class="col-md-12" *ngIf="serverMessage">
    <textarea style="width: 100%" cols="50" rows="10">{{ serverMessage }}</textarea>
</div>

在这里调用setServermessage:

signalr.service.ts

onMessageReceived(serverMessage: string) {
    this.cs.setServermessage(serverMessage);
  }

问题是当我在我的文本区域中记录消息时,它输出前一条消息和当前消息,从而使输出重复。我只想将新消息附加到我的textarea中的旧消息上。我需要你的帮助。谢谢。

1 个答案:

答案 0 :(得分:1)

您的案例是使用扫描运算符的完美案例

您可以执行以下操作,而不是使用局部变量并添加字符串:

您的服务将保持不变。但是您将组件逻辑更改为此

<key>NSAppTransportSecurity</key>
<dict>
  <key>NSAllowsArbitraryLoads</key>
  <false/>
  <key>NSExceptionDomains</key>
  <dict>
    <key>cocoacasts.com</key>
    <dict>
      <key>NSIncludesSubdomains</key>
      <true/>
      <key>NSExceptionAllowsInsecureHTTPLoads</key>
      <true/>
    </dict>
  </dict>
</dict>

然后您可以在模板中执行类似的操作

<key>NSAppTransportSecurity</key>
<dict>
  <key>NSAllowsArbitraryLoads</key>
      <true/>
</dict>