2017-04-06 5 views
0

Angular2 Material mdInputフィールドがあります。何らかの理由でプレースホルダのテキストが消えず、クリックしたときに入力テキスト領域がフォーカスしません。Angular2 mdInputクリックのフォーカスの問題

それが動作しない場合は、プレースホルダは消えないと、フィールドがフォーカスされませんが、私はそれに入力できる
<form class="create-taskitem-form" (ngSubmit)="submitNewTask()" novalidate> 
    <md-input-container class="create-task-item"> 
     <input mdInput 
     [(ngModel)]="taskListTitle" 
     (keyup.escape)="clearNewTask()" 
     name="taskListTitle" 
     autocomplete="off" 
     [placeholder]="newItemPlaceholder" 
     type="text"> 
    </md-input-container> 
</form> 

enter image description here

そして、何奇妙だが一度、私はサイズを変更するということですブラウザ、それ作業を行い、正しいフォーカス状態にはまる:

enter image description here

奇妙なのは、ちょうどうまく動作する入れ子の子コンポーネントがあることです。

import 'hammerjs'; 

@NgModule({ 
    imports: [ 
    CommonModule, 
    TasksRoutingModule, 
    ContentEditableModule, 
    ReactiveFormsModule, 
    FormsModule, 
    MaterialModule 
    ], 
    exports: [ 
    TasksRoutingModule 
    ], 
    providers: [ 
    TasklistTypes 
    ], 
    declarations: [TasklistCollectionComponent, TasklistComponent, TaskItemComponent] 
}) 
export class TasksModule { } 

答えて

0

プレースホルダの角かっこを削除してみてください。 (今のところ)

... 
placeholder="New list" 
... 
+0

私は両方を試して、プレースホルダを削除しましたが、同じ動作です。 –

0

何かが角度に登録していなかったので、focus()またはblur()イベントは、入力フィールドに起こったとき、私はちょうどゾーンを走った、そしてそれはそれ固定:

<md-input-container class="create-task-item"> 
     <input mdInput 
     (blur)="onBlur()" 
     (focus)="onFocus()" 
     [(ngModel)]="taskListTitle" 
     (keyup.escape)="clearNewTaskList()" 
     name="taskListTitle" 
     autocomplete="off" 
     [placeholder]="newItemPlaceholder" 
     type="text"> 
</md-input-container> 

で私のコンポーネント:

onBlur(){ 
    this.zone.run(() => {}); 
    } 

onFocus(){ 
    this.zone.run(() => {}); 
} 
+0

角度ゾーンを壊したように見え、 'zone.run()'または 'changeDetectorRef'のいずれかを使ってビューを手動で更新する必要があります。将来的にはこちら[こちら](https://stackoverflow.com/questions/34827334/triggering-angular2-change-detection-manually) – Stanislasdrg