我是Aurelia的新手,它试图通过ID实现一些“简单”的动态路由。
config.map([
{ route: 'questions/:id', . . .}
]);
我收到一个运行时错误,表明我缺少Activate()方法。
aurelia-history.js:4 Uncaught (in promise) Error: History must implement activate().
at mi (aurelia-history.js:4)
at History.activate (aurelia-history.js:13)
at AppRouter.activate (aurelia-router.js:1743)
at aurelia-router.js:1722
我发现缺少一个activate(),它正在进入原型并抛出此错误,我只是不知道在哪里添加activate()。我在我的模块中有它,但是我应该以某种方式在我的App类或此历史记录对象中有一个吗?
谢谢
-约翰
答案 0 :(得分:2)
好吧,为了其他奋斗者的利益,我试图追溯自己的脚步,拼凑出解决问题的方式-挑战是我改变了许多变量。 但是我相信我能够重新创建错误,并且我以与以前相同的方式破坏了应用程序。 当我将aurelia-router版本从1.2.1升级到1.6.2时,该错误可能开始出现。
这是我的旧package.json:
{
"name": "ClientWeb",
"private": true,
"version": "0.0.0",
"devDependencies": {
"@types/webpack-env": "^1.13.0",
"aspnet-webpack": "^2.0.1",
"aurelia-bootstrapper": "^2.0.1",
"aurelia-fetch-client": "^1.0.1",
"aurelia-framework": "^1.1.0",
"aurelia-loader-webpack": "^2.0.0",
"aurelia-pal": "^1.3.0",
"aurelia-router": "^1.2.1",
"aurelia-webpack-plugin": "^2.0.0-rc.2",
"bootstrap": "^3.3.7",
"css-loader": "^0.28.0",
"extract-text-webpack-plugin": "^2.1.0",
"file-loader": "^0.11.1",
"html-loader": "^0.4.5",
"isomorphic-fetch": "^2.2.1",
"jquery": "^3.2.1",
"json-loader": "^0.5.4",
"style-loader": "^0.16.1",
"ts-loader": "^2.0.3",
"typescript": "^2.2.2",
"url-loader": "^0.5.8",
"webpack": "^2.3.3",
"webpack-hot-middleware": "^2.18.0"
},
"dependencies": {
"@types/vis": "^4.21.7",
"vis": "^4.21.0"
}
}
当时我正在将几个库升级到最新版本,但是我尝试恢复到该原始package.json并只是更新了 aurelia-router 版本-它会产生原始错误。 / p>
希望这对某人有帮助。
-约翰
答案 1 :(得分:1)
出现此问题的原因是,您没有通过aurelia-history-browser
或aurelia.use.history()
在插件中包含aurelia.use.standardConfiguration()
。
aurelia-history-browser
模块实现了aurelia-history
抽象类History
,它是浏览器本机History
的包装。调用时,抽象类History
基本上会抛出方法名称错误,就像您看到的错误一样。