Aurelia:历史记录必须实现activate()

时间:2018-09-23 18:40:18

标签: aurelia aurelia-router

我是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类或此历史记录对象中有一个吗?

谢谢

-约翰

2 个答案:

答案 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-browseraurelia.use.history()在插件中包含aurelia.use.standardConfiguration()

aurelia-history-browser模块实现了aurelia-history抽象类History,它是浏览器本机History的包装。调用时,抽象类History基本上会抛出方法名称错误,就像您看到的错误一样。