【问题标题】:Angular - Declare variable within component templateAngular - 在组件模板中声明变量
【发布时间】:2018-07-11 23:36:56
【问题描述】:

我必须根据文本框中的值禁用/启用按钮。

这就是我目前的做法

<input [(ngModel)]="confirmationText" type='text'>
<button [disabled]="confirmationText != 'yes'">Delete</button>

问题:这可行,但我必须在我的 component.ts 文件中声明 confirmationText 并且我在模板中使用它,所以我寻找一种在组件模板中声明它的方法,以便我可以保持组件类的清洁。

Stackblitz

【问题讨论】:

  • 投反对票的人,投反对票有什么理由吗?
  • 人们在投反对票时应该进行教育。这是一个非常好的问题,对我来说似乎没有错。

标签: angular


【解决方案1】:

您可以使用template reference variable 来实现您想要的。请注意,必须在输入元素上设置ngModel 指令才能使其工作。

<input #textInput type="text" ngModel>
<button [disabled]="textInput.value !== 'yes'">Delete</button>

请参阅this stackblitz 以获取演示。

【讨论】:

  • 我正要发布我的答案,但我得到了你已经发布的更新。没错。
  • ngModel 指令是我错过的,谢谢 :)
【解决方案2】:

你必须像这样在模板引用中获取值

<input [(ngModel)]="confirmationText" type='text' #myInput> <button [disabled]="myInput.value != 'yes'">Delete</button>

看看我的解决方案

stackblitz

【讨论】:

  • 感谢解答,但是没有ngModel指令是不行的,比如试试这个&lt;input type='text' #myInput&gt;
  • @cyberpirate92 - 这个答案应该有效,因为在输入元素中设置了 ngModel 指令。但是,它涉及到在组件类中声明confirmationText,这是您要避免的。
猜你喜欢
  • 1970-01-01
  • 2018-08-04
  • 2016-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-15
  • 2010-10-17
  • 2016-04-15
相关资源
最近更新 更多