Aurelia - Asp.net Core SPA项目仅在navmenu上出错 - uncrementCounter不是一个函数

时间:2017-11-07 02:12:45

标签: aurelia

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

我发现了重大更改,直到我在navmenu.html中发现错误而未识别出某个功能。

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

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

要解决此错误,我所做的就是在navmenu上创建一个函数,并使用" 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核心解决方案,其中包含spa,可以从github下载。

如果有人能在这里帮助我,那将是很棒的,因为这对我来说是一个显示阻碍。

1 个答案:

答案 0 :(得分:1)

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