ViewSlot 与 Aurelia 抛出错误

问题描述 投票:0回答:2

尝试将

ViewSlot
注入到基于骨架的 esnext 项目中,浏览器中显示以下错误。我刚刚使用基于 systemjs
CLI
创建了一个简单的项目,我看到了同样的事情。

vendor-bundle.js:1398 Unhandled rejection Error: Error invoking ViewSlot. Check the inner error for details.
Inner Error:
Message: Cannot set property ‘viewSlot’ of undefined``

从修改后的 CLI 生成的应用程序中,这重现了我在真实应用程序中看到的相同问题,

import { BoundViewFactory, ViewSlot, customAttribute, templateController, inject } from 'aurelia-framework';

@inject(ViewSlot)

export class App {
    constructor(viewSlot) {
        this.message = 'Hello World!';

        this.viewSlot = viewSlot;

    }
}
aurelia
2个回答
1
投票

我认为问题在于 ViewSlot 应该与自定义元素一起使用,而不是与页面一起使用。我将 ViewSlot 注入到自定义元素中没有任何问题,但是当我尝试在页面组件上使用它时,每次都会失败。

问题在于,

ViewSlot
实例期望将锚节点传递给它,但页面没有锚节点。 Aurelia 将
undefined
传递给
anchor
属性,然后
ViewSlot
尝试设置未定义值的
viewSlot
属性,但失败了。


0
投票

我认为

@ViewSlot
不应该用作装饰器,而应该用作类。 例如,
let viewSlot = new ViewSlot(container, true);
其中容器是 HTML 元素。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.