Aurelia 如何将路由参数作为可绑定值传递给组件';视图模型(非视图)
我使用了路线导航,通过激活访问路线参数Aurelia 如何将路由参数作为可绑定值传递给组件';视图模型(非视图),aurelia,bindable,Aurelia,Bindable,我使用了路线导航,通过激活访问路线参数 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 {
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;
}
}
export class Grade{
@bindable id;
constructor() {
console.log("id=", this.id};
}
它路由到的页面是使用几个需要传递此参数的组件构建的
<template>
<require from="grade" > </require>
<h1> Student - ${id} </h1>
<grade id.bind="id"></grade>
<department id.bind="id"></department>
<template>
显示为未定义。我试图通过激活访问它,就像我在student中所做的那样,但当页面加载时,模板似乎没有被激活。我认为问题不在于路由,而在于如何访问viewmodel中的可绑定值。我也尝试了一次性和双向绑定模式,它们给出了相同的结果 它未定义的原因是您正在
构造函数中调用它。可绑定变量填写在附加的阶段
如果您尝试使用以下附加方法调用它:
attached() {
console.log("id=" + this.id);
}
它应该被填满
有关Aurelia组件生命周期的详细信息,请单击它也应在绑定()阶段可用,该阶段发生在附加()之前。