Я использовал навигацию по маршруту, где я получаю доступ к параметрам маршрута из активации.
app.ts
export class App {
configureRouter(config) {
config.map([
{ route: 'student/:id', name: 'student', moduleId: 'student', nav: true, title: 'student', href: '#' }
]);
}
}
student.ts
export class Student {
id;
activate(params) {
this.id = params.id;
}
}
Страница, на которую он перенаправляется, построена с использованием нескольких компонентов, которым необходимо передать этот параметр.
<template>
<require from="grade" > </require>
<h1> Student - ${id} </h1>
<grade id.bind="id"></grade>
<department id.bind="id"></department>
<template>
В моем представлении оценки он правильно получает идентификатор, когда я отображаю его в элементе html (после того, как я делаю его привязываемым в модели представления):
grade.html
<span>${id}</span>
Но я не могу получить идентификатор в модели просмотра класса, т.е. grade.ts
export class Grade{
@bindable id;
constructor() {
console.log("id=", this.id};
}
появляется как неопределенное. Я попытался получить к нему доступ через активацию, как и в студенте, но похоже, что шаблоны не активируются при загрузке страницы. Я думаю, что проблема не в маршрутизации, а в том, как получить доступ к привязываемым значениям в модели представления в целом. Я также пробовал однократный и двусторонний режимы привязки, и они дали одинаковые результаты.