目前在Aurelia中,我无法绑定到登录页面中父级(app.ts
)的字段。
如果我明确使用$parent
,则会收到异常消息,告诉我$parent
ist未定义。
如果我转到另一个页面并返回到登录页面,$parent
现在已定义,我可以直接使用父级字段,而无需使用$parent
关键字。
我确定它会早点说,但我认为某些更新的软件包会破坏它。 (更新后无法识别)
<h1>${testString}</h1><!-- Nothing displayed -->
<h1>${$parent.testString}</h1><!-- ERROR [app-router] TypeError: Cannot read property 'testString' of undefined -->
最初在页面加载后都不起作用,但在路由回到此页面后两者都不起作用。
我想念什么?
使用aurelia绑定2.1.5,aurelia-framework 1.3.0,aurelia-router 1.6.3
答案 0 :(得分:1)
代替使用$ parent,只需使用依赖项注入即可访问父级的视图模型。
这里是GistRun example。
test-child.html
<template>
<h1>${app.message}</h1>
</template>
test-child.js
import {inject} from 'aurelia-framework';
import {App} from './app';
@inject(App)
export class TestChild {
constructor(app) {
this.app = app;
}
}
app.html
<template>
<require from="./test-child"></require>
<test-child></test-child>
</template>
app.js
export class App {
message = 'Hello World';
}