2017-10-03 2 views
0

Vor dem Übergang des Zustands muss ich überprüfen, ob der Zielzustand unter einem Elternstatus ist. Die MatchCriteria sieht wie folgt aus:UI-Router-Status enthält Eigenschaft wird Problem: Eigenschaft "umfasst" existiert nicht für den Typ "StateDeclaration"

this.transition.onStart({ 
    to: function(state) { 
    return state.includes.parentstate; 
    } 
},() => {... 

aber ich erhalte eine Fehlermeldung, dass Property 'includes' does not exist on type 'StateDeclaration'. Wenn ich console.log(state.includes) es nicht gibt. Irgendwelche Ideen?

HINWEIS: Das Projekt verwendet Angular 4 und UI-Router.

Antwort

0

Dies ist ein Fehler in @uirouter/core. Das dem Callback bereitgestellte Objekt ist (das normalerweise als internes Objekt betrachtet wird). Die Typings sagen, dass es ein StateDeclaration ist, das das Objekt ist, das Sie zum Registrieren des Status verwendet haben.

Um dieses Problem zu umgehen, Ihre Funktionsparameter deklarieren any

this.transition.onStart({ 
    to: function(state: any) { 
    return state.includes.parentstate; 
    } 
},() => {... 

Aus Kompatibilitätsgründen nach hinten, ich glaube, die nächste Version von ui-Router wird einfach die Typisierungen aktualisieren, um ein StateObject

nehmen
Verwandte Themen