私は標準のangle2アプリ(より具体的にはtodoアプリ)を構築しています。私も@Ngrx/storeを追加しました。ng2 [無効] = "!myInput.value"は正しく動作しません。
私はページをロードする最初の時間は、ボタンは無効になりますが、私は入力ボックスにいくつかの値を入力すると、ボタンを有効にする必要があり、それが無効になったまま...
app/app.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
template: `
<h1>Hello {{name}}</h1>
<div>
<add-todo></add-todo>
</div>`,
})
export class AppComponent { name = 'Angular'; }
app/components/add-todo/add-todo.component.ts
import { Component, ViewChild, ElementRef } from '@angular/core';
@Component({
moduleId: module.id,
selector: 'add-todo',
template: `
Create new todo
<input #myInput />
<button (click)="addTodo()" [disabled]="!myInput.value">Add</button>`
})
export class AddTodoComponent {
@ViewChild('myInput') input: ElementRef;
constructor() {}
addTodo(): void {
alert(this.input.nativeElement.value);
}
}
変化の検出については気をつけてください。それはあなたを助けるかもしれないhttp://stackoverflow.com/questions/41608443/angular2-what-does-binding-event-to-0-mean – yurzui
うーん...私はあなたがやろうとしていると思うが、もしnativElement (通常の古いHTMLの "value"属性に対して)値を持っていますが、有効/無効を切り替えたいのですか?それがうまくいくかどうかはわかりませんが、nativeElement属性がそのまま「Angular」に見えるものかどうかはわかりません。私が思うには、の値をバインドするか、入力(changeなど)のイベントにバインドし、true/falseを決定する値を設定します(onChangeハンドラのように、 "if(val)disabled = false"またはそのようなもの)。 –
ngModelを追加しても機能しませんでしたが、[yurzui](https://stackoverflow.com/users/5485167/yurzui)のように(keyup)= "0"を追加するだけで解決しました。 – Aytacworld