Автофокус ввода бумаги не работает внутри маршрутизатора-выхода в компоненте angular 2

Допустим, у меня есть следующие маршруты, определенные в моем приложении angular 2:

@RouteConfig([{
        component: FirstRouteComponent,
        name: "First",
        path: "/First",
        useAsDefault: true
    },
    {
        component: SecondRouteComponentComponent,
        name: "Second",
        path: "/Second"
    }])
    export class AppComponent {
    }

и в шаблоне FirstRouteComponent у меня есть:

<paper-input autofocus></paper-input>

Когда я перехожу от маршрута «Второй» к маршруту «Первый» (через некоторую директиву [routerLink], которая у меня есть на каком-то теге статически на странице), ввод бумаги не сфокусирован. Как ни странно, если я уже нахожусь в маршруте «Первый» и обновляю страницу, ввод бумаги успешно сфокусирован.

У меня есть ощущение, что это как-то связано с тем, как маршрутизатор angular 2 динамически вставляет бумагу для ввода в дом, и с тем, как полимер использует автофокус, но я не могу указать на проблему. Хотя я могу ошибаться, и эта проблема «странная», потому что до сих пор у меня не было никаких проблем с передачей каких-либо других параметров полимерным компонентам (включая ввод бумаги) в моих компонентах.

Спасибо заранее за любую помощь :)


person Ziv Glazer    schedule 23.05.2016    source источник
comment
Похоже, что autofocus передается непосредственно внутреннему <input>. Есть ли у родного <input> такая же проблема с autofocus? Если это так, проблема может быть за пределами Polymer.   -  person tony19    schedule 23.05.2016


Ответы (1)


Ты можешь написать:

<paper-input #autofocus></paper-input>
in AppComponent:

import { AfterViewInit, ViewChildren } from '@angular/core';
 export class AppComponent implements  AfterViewInit {
   @ViewChildren('autofocus') fc;
   ngAfterViewInit() {
        this.fc.first.nativeElement.focus();
    }
}
person love prince    schedule 26.10.2016