【问题标题】:error when trying to create plunker which uses router in angular2 beta.17尝试创建在 angular2 beta.17 中使用路由器的 plunker 时出错
【发布时间】:2016-09-11 21:02:34
【问题描述】:

我正在尝试创建使用 angular2(beta.17 版本)中的路由的 plunker,由于某种原因,当我尝试将 ROUTER_PROVIDERS 作为“main.ts”中“App”的依赖项时

    //main entry point
import {bootstrap} from '@angular/platform-browser-dynamic';
import {provide, bind} from 'angular2/core';
import {ROUTER_PROVIDERS, ROUTER_BINDINGS, LocationStrategy, HashLocationStrategy} from 'angular2/router';

import {App} from './app';

bootstrap(App, [ROUTER_PROVIDERS])//<-here
  .catch(err => console.error(err));  

我收到此错误: angular2-polyfills.js:349 错误:无效的提供者 - 只允许提供 Provider 和 Type 的实例,得到:object Object

plunk

我错过了什么?

谢谢

【问题讨论】:

    标签: angular


    【解决方案1】:

    根据变更日志:注解导入随 rc.0 一起提供。因此,您使用的是 beta17,但您的设置适用于 rc.0-1。

    来源:https://github.com/angular/angular/blob/master/CHANGELOG.md

    【讨论】:

    • 抱歉,它在哪里提到“注解导入带有 rc.0。”?它是在某个地方吗?
    • @happyZZR1400 不,不在 plunk 中。我在更新日志中说。请参阅 rc.0 =>github.com/angular/angular/blob/master/… 的更改日志。它说:要导入各种符号,请按以下方式调整路径:angular2/core -> @angular/core...
    【解决方案2】:

    您正在混合 angular2 RC.0 和 angular2 beta 17 的导入, 看看你犯的几个错误:-

    1. 你没有像这样在 index.html 中设置 ser base href -

      <base href="/"></base>
      
    2. 在 main.ts 中像这样正确导入

      从 'angular2/platform/browser' 导入 {bootstrap};

    3. 在 app.ts 中进行一些这样的更改

      从 'angular2/core' 导入 {Component}

    有关导入的更多说明,请查看此 -

    这是你的工作人员 Working Plunker

    【讨论】:

    • 非常感谢,所以plunker模板写不正确
    【解决方案3】:

    这可能会有所帮助。 Angular 2 rc1 的新路由器。

    https://angular.io/docs/ts/latest/guide/router.html

    【讨论】:

    • 始终欢迎提供指向潜在解决方案的链接,但请添加 context around the link,以便您的其他用户知道它是什么以及为什么存在。始终引用重要链接中最相关的部分,以防目标站点无法访问或永久离线。考虑到仅仅是指向外部站点的链接是Why and how are some answers deleted 的一个可能原因?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-14
    • 2019-01-07
    • 2018-09-07
    • 2016-09-01
    • 2016-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多