基于局部变量Angular2的动作

时间:2016-04-22 06:00:47

标签: angular

我想知道如何禁用按钮,具体取决于本地模板varibale的值。这是我的代码 -

<input type="text" #name>     
<button [disabled]='name.value' (click)='getvalue()'>Demo</button>

我想在#name的值改变时取消按钮,也就是如何在类(组件类)中获取#name的值?

这里是相同的plnkr http://plnkr.co/edit/3ZHS7jfQIVl2WVsK8BEb?p=preview

2 个答案:

答案 0 :(得分:2)

Angular不会运行更改检测,因为没有触发与Angular相关的事件。如果绑定到事件,则Angular运行更改检测,绑定工作

添加(input)="null"之类的

  <input type="text" #name (input)="null">

让您的示例有效。

Plunker example

答案 1 :(得分:0)

搜索后发现One Alternate,

实际上这不起作用,因为Angular变化检测仅在任何事件触发时起作用,但在这种情况下,局部变量不会触发任何事件, 因此,要进行更改检测,我们必须将任何事件添加到输入字段。我们可以通过调用任何函数来执行此操作,或者我们可以执行此操作 通过在输入字段上简单地调用keyup事件,就像这样 -

<input type="text" #name (keyup)='name.value' />

<button [disabled]='!name.value' (click)='getvalue(name.value)' class="btn btn-md btn-primary">Demo</button>