5

有切换两个按钮(编辑和提交),哪个按钮应该像点击时切换显示/隐藏样式一样工作

<button (click)="showEditBtn = false;" *ngIf="showEditBtn;"> Edit</button>
<button (click)="showEditBtn =  true;" *ngIf="!showEditBtn;">Submit</button> 

我需要 的showEditBtn变量应该是true默认的而不接触脚本文件

是否可以为模板中的变量赋值,如下例所示?

<div> {{  let showEditBtn = true  }}  </div>

堆栈闪电战示例

4

5 回答 5

5

想通了这有点骇人听闻。但完美运行

<div *ngIf="true; let showEditBtn">
    <div> {{ showEditBtn }} </div>
    <button (click)="showEditBtn = false" *ngIf="showEditBtn"> Edit</button>
    <button (click)="showEditBtn = true" *ngIf="!showEditBtn">Submit</button>
</div>
于 2019-05-22T09:30:06.977 回答
3

您不能在插值内的变量中创建或设置值{{ }},插值仅用于打印输出(变量的值)。

于 2019-05-22T09:22:12.143 回答
3

Angular Interpolation是 Angular 中数据绑定的一种方式。它将允许用户在组件和它的模板(视图)之间进行通信。

字符串插值是一种单向数据绑定。在单向数据绑定中,模型的值被插入到 HTML (DOM) 元素中,无法从视图更新模型。

希望给出的链接可能有助于理解。

于 2019-05-22T09:33:32.647 回答
2

我强烈建议不要在模板中设置或更新变量。您的所有逻辑都应该在控制器中。

这是一个简单的例子,说明如何做到这一点 app.component.ts:

  public isEditMode: boolean;
  public toggleEditMode(): void {
      this.isEditMode = !this.isEditMode;
  }

app.component.html

<button (click)="toggleEditMode()" *ngIf="isEditMode;"> Edit</button>
<button (click)="toggleEditMode()" *ngIf="!isEditMode;">Submit</button>
于 2019-05-22T09:20:41.890 回答
0

Angular2+ 中没有办法初始化模板中的变量值。您必须查看该ngOnInit()功能。

于 2019-05-22T09:22:02.293 回答