Aurelia:历史必须实现 activate()
Aurelia: History must implement activate()
我是 Aurelia 的新手,正在尝试使用 id 实现一些 'simple' 动态路由。
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()。我在我的模块中有它,但我应该以某种方式在我的应用程序 class 或这个历史对象中有一个吗?
谢谢
-约翰
您遇到此问题的原因是您没有通过以下方式在您的插件中包含 aurelia-history-browser
:aurelia.use.history()
或 aurelia.use.standardConfiguration()
。
aurelia-history-browser
模块实现了 aurelia-history
抽象 class History
,它是浏览器原生 History
的包装器。 abstract class History
基本上在你调用它的时候抛出一个方法名的错误,就像你看到的错误。
好吧,为了其他挣扎者的利益,我试着回顾我的步骤并拼凑出我是如何解决我的问题的——挑战是我改变了很多变量。
但我相信我能够重新创建我的错误,并且我以与以前相同的方式破坏了我的应用程序。
当我将我的 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 版本 -它会产生原始错误。
希望这对某人有所帮助。
-约翰
我是 Aurelia 的新手,正在尝试使用 id 实现一些 'simple' 动态路由。
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()。我在我的模块中有它,但我应该以某种方式在我的应用程序 class 或这个历史对象中有一个吗?
谢谢
-约翰
您遇到此问题的原因是您没有通过以下方式在您的插件中包含 aurelia-history-browser
:aurelia.use.history()
或 aurelia.use.standardConfiguration()
。
aurelia-history-browser
模块实现了 aurelia-history
抽象 class History
,它是浏览器原生 History
的包装器。 abstract class History
基本上在你调用它的时候抛出一个方法名的错误,就像你看到的错误。
好吧,为了其他挣扎者的利益,我试着回顾我的步骤并拼凑出我是如何解决我的问题的——挑战是我改变了很多变量。 但我相信我能够重新创建我的错误,并且我以与以前相同的方式破坏了我的应用程序。 当我将我的 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 版本 -它会产生原始错误。
希望这对某人有所帮助。
-约翰