Angular 2路由器实例化问题

时间:2016-05-24 07:14:19

标签: angularjs routing angular

我对Angular 2路由器有疑问。我基本上希望能够使用函数在我的应用程序中导航,所以我想使用路由器中的导航功能,如in the official example

所以这就是我在文件中的内容:

的index.html

<script src='@routes.Assets.versioned("lib/typescript/lib/typescript.js")'></script>
<script src='@routes.Assets.versioned("lib/es6-shim/es6-shim.min.js")'></script>
<script src='@routes.Assets.versioned("lib/angular2/bundles/angular2-polyfills.js")'></script>
<script src='@routes.Assets.versioned("lib/angular2/es6/dev/src/testing/shims_for_IE.js")'></script>
<script src='@routes.Assets.versioned("lib/systemjs/dist/system.js")'></script>
<script src='@routes.Assets.versioned("lib/rxjs/bundles/Rx.js")'></script>
<script src='@routes.Assets.versioned("lib/angular2/bundles/angular2.dev.js")'></script>
<script src='@routes.Assets.versioned("lib/angular2/bundles/http.js")'></script>
<script src='@routes.Assets.versioned("systemjs.config.js")'></script>
<script src='@routes.Assets.versioned("lib/angular2/bundles/router.dev.js")'></script>

并在我要使用的typescript文件中导航:

import { Http } from "angular2/http"
import { Router } from "angular2/router"

export class ClassName {
  constructor (private _http: Http, private _router: Router) {}

  goSomewhere(pageName: string) {
      let link = [pageName]
      this._router.navigate(link)
  }
}

基本上是这样,我试图逐步撤消和添加,导入工作,然后将其添加到构造函数时失败,删除私有或重命名变量也没有工作。

在我的导入中,我曾经有过angular2.js和router.js并且遇到了这个问题:

angular2-polyfills.min.js:1 Error: EXCEPTION: Error during instantiation of t! (e -> t). 

但是我发现here它可以通过使用dev libs解决问题,但现在我有了这个:

angular2-polyfills.min.js:1 Error: EXCEPTION: Error during instantiation of ApplicationRef_! (ApplicationRef -> ApplicationRef_).

现在我有点迷失...有关我使用 beta 17 版Angular 2的信息。

1 个答案:

答案 0 :(得分:1)

所以我找到了一种让它发挥作用的方法。我们不能在没有@RoutesConfig的@Injectable的构造函数中使用Router,所以为了保持我想要的逻辑,我在我的注入类中做了这个:

doSomething(router: Router, foo: any) {
    //instructions with set of link variable
    router.navigate(link)
}

现在我只需在所有组件构造函数中添加injectable类和路由器,并使用_className.doSomething(this._router,foo)来使用函数

希望它能帮助其他人:)