Aurelia - Asp.net 核心 SPA 项目仅在导航菜单上有错误 - uncrementCounter 不是函数

Aurelia - Asp.net Core SPA project has error on navmenu only - uncrementCounter is not a function

我有 Aurelia - ASP.NET 核心 2 模板项目。您可以从 GITHUB 和 运行 下载它以验证错误。

我进行了重大更改,直到发现 navmenu.html 无法识别函数的错误。

我回到模板并进行了快速测试,发现基本模板中存在相同的错误。

我在我的原始解决方案中注册了 this 问题,但现在我意识到它与我得到的实际 Aurelia 模板有关。所以我已将整个项目上传到 github 以便有人可以看到整个项目。

为了得到这个错误,我所做的就是在导航菜单上创建一个函数并使用 "click.deligate" 在按钮上引用它。这是 navmenu.html:

<template bindable="router">
<require from="./navmenu.css"></require>
<div class="main-nav">
    <div class="navbar navbar-inverse">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="#/home">Jobsledger.API</a>
        </div>
        <div class="clearfix"></div>
        <div class="navbar-collapse collapse">
            <ul class="nav navbar-nav">
                <li repeat.for = "row of router.navigation" class="${ row.isActive ? 'link-active' : '' }" >
                    <a href.bind = "row.href">
                        <span class="glyphicon glyphicon-${ row.settings.icon }"></span> ${ row.title }
                    </a>
                </li>
            </ul>
        </div>

    </div>
</div>
<div>
    <h1>Counter</h1>

    <p>This is a simple example of an Aurelia component.</p>

    <p>Current count: <strong>${currentCount}</strong></p>

    <button click.delegate="incrementCounter()">Increment</button>
</div>

这是 viewmodel.ts 文件

    import { autoinject } from "aurelia-framework";

    @autoinject
    export class Navmenu {
        //loggedInService: LoggedInService;
        public currentCount = 0;

        public incrementCounter() {
            this.currentCount++;
        }
    }

错误是:

aurelia-binding.js:1905 Uncaught Error: incrementCounter is not a function
at getFunction (aurelia-binding.js:1905)
at CallScope.evaluate (aurelia-binding.js:1508)
at Listener.callSource (aurelia-binding.js:5082)
at Listener.handleEvent (aurelia-binding.js:5091)
at HTMLDocument.handleDelegatedEvent (aurelia-binding.js:3223)

正如我所说,有一个有效的 asp.net 核心解决方案,其中包含水疗中心,可以从 github 下载。

如果有人能在这里帮助我,那就太好了,因为这目前对我来说是一个表演障碍。

您只需要 navmenu 作为模板,例如<require from="../navmenu/navmenu.html"></require>。为了在 javascript 中使用您的视图,请参阅此 guide 关于自定义元素。