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 关于自定义元素。
我有 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 关于自定义元素。