我有这个代码来渲染从json到我的组件的细节:

<tr *ngFor="let wall of userWall">
    <td *ngFor="let item of keys" [hidden]="!item.visible" [ngStyle]="{'text-align':'left'}">
        <span *ngIf="item.fieldName=='walladdress' && wall[ item.fieldName]!=''">{{ wall[item.fieldName] }}</span>
        <span *ngIf="item.fieldName=='walladdress' && wall[ item.fieldName]==''">
            <button type="submit" class="btn btn-primary" (click)="GenerateWall(wall.currid)">Generate</button>
        </span>
        <span *ngIf="item.fieldName!='walladdress'">{{ wall[item.fieldName] }}</span>
    </td>
</tr>

现在通过单击按钮,我创建一个墙并将其发送回前端 . 但我对如何将新生成的墙放置到相应的行单元格有点困惑 . 在创建墙之后,我似乎无法刷新数据 . 这是我调用的函数:

GenerateWallet(currid){
    this.UserApi.GenerateWall(currid).subscribe(data => {
        getUserWall();
    })
}

getUserWall(){
    this.UserApi.GetUserWall().subscribe(data => {
        if (Array.isArray(data)) {
            this.userWall = data;
        }
    })
}

filteredCurrencies
  init() {
    var wall = this.userWall
    this.filteredCurrencies = []
    for (var currencyIndex in this.currencies) {
      var flag = true
      var currency = this.currencies[currencyIndex]
      for (var index in wall) {
        var wall = wall[index]
        if (wall.currid == currency.currid) {
          flag = false
          break;
        }
      }
      if (flag) {
        this.filteredCurrencies.push(currency)
      }
    }
  }

并且绑定的json数据是这样的:

[
  {
    "currid": 1,
    "currencyname": "XXXX",
    "currencyshortname": "XXX",
    "cursymbolurl": "xxxx",
    "walletacid": 1719,
    "accountid": 1044,
    "fundslocked": 0.0,
    "walladdress": "ffaab3be-1958-11e8-886a-8512c9ba4a42",
    "bal": "",
    "usdvalue": "",
    "availabal": ""
  },
  ...
]

我没有Angular4的背景,甚至没有AngularJS . 其中一个UI留在中间,我只需要完成它 . 只需了解模式并巧妙地重用已经创建的代码 .