2016-11-24 3 views
0

Я пытаюсь показать текст «loading ...» в Angular2 при загрузке ленивых маршрутов, но странно, что как только я использую момент () от момента, когда пользовательский интерфейс заморожен во время ленивой загрузки, что приводит к тому, что «загрузка ...» не отображается до тех пор, пока навигация не будет завершена.Функция momentjs moment() заставляет замолчать пользовательский интерфейс при ленивой загрузке в angular2

Я использую следующий код, чтобы показать и скрыть «загрузка ...» Текст:

router.events.subscribe(ev => { 
    if (ev instanceof NavigationStart) 
    { 
    console.log("Navigation started"); 
    this.isNavigating = true; 

    } 
    if (ev instanceof NavigationEnd || ev instanceof NavigationError || ev instanceof NavigationCancel) { 
    console.log("Navigation ended"); 
    this.isNavigating = false; } 
    }) 

Вот звенеть, что продемонстрировать проблему, но, к сожалению, я не знаю, как использовать momentjs в этом plunker продемонстрировать проблему:

https://plnkr.co/edit/nXJE24ilpE9SS68kgQbG?p=preview

Это то, что я планирую сделать, и это шлепнуть работает нормально, но как только я использую момент() функция (в любом месте) Пользовательский интерфейс зависает во время загрузки.

Я действительно ценю, если кто-то может помочь.

+0

Это поможет, если вы можете показать код, который вы используете, для вызова момента и где. – Fiddles

ответ

0

Для тех, кто сталкивается с одной и той же проблемой, чтобы исправить, я просто использовал momentjs, связавшись с библиотекой momentjs вместо того, чтобы использовать ее через установку NPM, и исправил проблему. Это просто, но мне потребовалось некоторое время, чтобы понять. Вот несколько простых typing.d.ts:

declare function moment(): any; declare function moment(date): any; 
declare namespace moment { class Moment { 
} 
function locale(string): any; 
} 

Надеюсь, вам понравится!