2015-07-29 1 views
2

Il semble que configureRouter ne soit pas appelé lors de l'utilisation de la liaison de composition.configureRouter non appelé composer des modèles de vue

est la vue:

<template> 
    <compose view="./ask-banner.html" view-model="./ask-banner"></compose> 
... 

Dans le parent, configureRouter est appelé comme prévu. Mais dans ask-banner.js, configureRouter n'est jamais appelé.

Le problème est que j'ai besoin d'une référence au routeur afin que je puisse appeler la méthode de navigation.

La méthode activate est appelée, il semble donc que le configureRouter doit également être appelé.

+1

Je ne recommanderais pas mettre un routeur sur un élément composé. Par exemple, une vue de routeur a un itinéraire avec un modèle de vue de routeur enfant et la nature des compositions est non linéaire, par exemple, vous avez composé en trois éléments différents en un seul. page. –

+0

Bon point @MatthewJamesDavis –

Répondre

1

J'ai trouvé une autre façon d'obtenir une référence au routeur:

import {inject, singleton} from 'aurelia-dependency-injection'; 
import {Router} from 'aurelia-router'; 
@inject(Router) 
@singleton() 
export class Ask{ 
constructor(router) 
{ 
    this.router = router; 
} 
}