第一页加载未定义Aurelia $ parent

时间:2018-10-17 16:23:53

标签: aurelia aurelia-binding aurelia-framework

目前在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

1 个答案:

答案 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';
}