输入另一个参数 - NgSwitch 时将一个参数设置为某个值



我有一个应用程序,您可以在其中向数据库添加或编辑值。

我想这样做,以便当我将一个参数设置为任何内容(默认情况下为空(时,第二个参数将设置为特定值。

关于我实际要做的事情的进一步解释:

网页代码:

<form class=form-group>
    <td><label>Status Code</label></td>
    <input type="text" #StatusCode (ngModel)="StatusCodes" value="{{StatusCodes}}">
</form>                                         
<form class=form-group>
    <td><label>Eta</label></td>
    <input type="text" #Eta (ngModel)="Etas" value="{{Etas}}">
</form>
<form class=form-group>
    <td><label>Etd</label></td>
    <input type="text" #Etd (ngModel)="Etds" value="{{Etds}}">
</form>
<form class=form-group>
    <td><label>Ata</label></td>
    <input type="text" #Ata (ngModel)="Atas" value="{{Atas}}">
</form>
<form class=form-group>
    <td><label>Atd</label></td>
    <input type="text" #Atd (ngModel)="Atds" value="{{Atds}}">
</form>

StatusCodes的默认值为"宣布",只有Eta具有指定的值(其他 3 个为空(。输入Ata值后,我希望将StatusCodes值自动设置为"inport"。

我猜 ngswitch 可以在这种情况下使用,但我不知道怎么做。在这种情况下,它的语法是什么?

如果有更好的方法来获得这种行为,请告诉我如何实现这一点。

我认为ngSwitch不会帮助你,因为它基本上只是ngIf的扩展 - 所以用于显示和隐藏 DOM 元素。到目前为止,最健壮的选择是在 TypeScript 中使用事件显式处理它。

例如,像这样:

<form class=form-group>
    <td><label>Status Code</label></td>
    <input type="text" #StatusCode (ngModel)="StatusCodes" value="{{StatusCodes}}">
</form>                                         
<form class=form-group>
    <td><label>Eta</label></td>
    <input type="text" #Eta (ngModel)="Etas" value="{{Etas}}">
</form>
<form class=form-group>
    <td><label>Etd</label></td>
    <input type="text" #Etd (ngModel)="Etds" value="{{Etds}}">
</form>
<form class=form-group>
    <td><label>Ata</label></td>
    <input type="text" #Ata (ngModel)="Atas" value="{{Atas}}" (change)="updateStatusCode('ata')">
</form>
<form class=form-group>
    <td><label>Atd</label></td>
    <input type="text" #Atd (ngModel)="Atds" value="{{Atds}}">
</form>

然后:

updateStatusCode(type) {
  switch (type) {
    case 'ata':
      /* set status code */
      this.StatusCodes = 'import';
      break;
    case 'atd':
      /* etc */
      break;
    case 'eta':
      /* etc */
      break;
    case 'etd':
      /* etc */
      break;
  }
}

它不是超级优雅的,但它是最容易更改和测试的(如果你要编写单元测试(。

我没有执行上面的代码,所以请记住,您可能需要对其进行一些调整。

相关内容

  • 没有找到相关文章

最新更新