当前位置: 首页 > 知识库问答 >
问题:

角2 rc路由器angular2-polyfills.js:349错误

阎枫涟
2023-03-14

当我将angular2测试应用程序从beta-14转换为rc1时。我犯了以下错误

ZoneDelegate.invoke @ angular2-polyfills.js:349 Error: Cannot read property 'toString' of undefined(…)

发出此错误的代码在这里

    346 ZoneDelegate.prototype.invoke = function (targetZone, callback, applyThis, applyArgs, source) {
    347     return this._invokeZS
    348         ? this._invokeZS.onInvoke(this._invokeDlgt, this.zone, targetZone, callback, applyThis, applyArgs, source)
    349         : callback.apply(applyThis, applyArgs);
    350 };

导致错误的代码是main。ts

import {bootstrap}    from '@angular/platform-browser-dynamic';
import {provide, ComponentRef} from '@angular/core';
import {ROUTER_PROVIDERS } from '@angular/router-deprecated';
// ,LocationStrategy, HashLocationStrategy
import { HTTP_PROVIDERS }    from '@angular/http';
import 'rxjs/Rx';
import {APP_BASE_HREF} from '@angular/common'

import {AppComponent} from './appShell/app.component';
import {appInjector} from './login/auth.injector';
import {Authentication} from './login/auth.service';

bootstrap(AppComponent, [
  ROUTER_PROVIDERS,
  //provide(LocationStrategy, {useClass: HashLocationStrategy}),
  provide(APP_BASE_HREF, {useValue: location.pathname}),
  Authentication,
  HTTP_PROVIDERS
])//.catch(err => console.error(err));
.then((appRef: ComponentRef<any>) => {
  // store a reference to the application injector
  appInjector(appRef.injector);
});

为了向后兼容,我使用了不推荐使用的路由器。此代码用于beta-14。

我用https://plnkr.co/edit/yRKhoOelf2uJ3yAsdIMm?p=preview.config.js

LocationStrategy, HashLocationStrategy被注释掉,因为它不再包含在已弃用的路由器中。是不是换成了

provide(APP_BASE_HREF, {useValue: location.pathname})  ?

更重要的是,我能做些什么来让它工作?

共有1个答案

柏正平
2023-03-14

看起来config.js是错误的。

我用叉子叉了在文件中找到的官方文件,它没有显示任何错误。

http://plnkr.co/edit/wbRp2k67JiXbN2RFlaUc?p=preview

如上所述,您可以在@angular/common中找到LocationStrategyHashLocationStrategy

 类似资料:
  • 所以我有一些路线,比如<code>/category/tech</code>和<code</categority/tech/new<code>和<code>/category/tech/old</code>等等 他们都使用 或者我必须分别定义它们,就像

  • 问题内容: 角度ui路由器的示例演示在起始页面具有以下链接: “ ui-router”的完整网址为或 “关于”的完整网址为或 当我使用durandalJS时,存在一个限制,即默认URL只是“ /”,不能有“ / ui-router”。 Angular ui路由器插件有相同的限制吗? 问题答案: 请参阅此处,默认路由有一个“其他”选项。

  • 有什么简单的方法可以实现这一点吗? 这是我导航到路线的代码 这是我的路由模块 基本上,我希望执行与CreateAlbum组件是当前组件的子组件相同的操作,在这种情况下,我将使用@Input()

  • 问题内容: 在ios8中可用的角度应用程序中进行路由会在ios9中产生[$ rootScope:infdig]错误。我都尝试过,但是结果是一样的。 有什么解决办法吗? 问题答案: 即使这被标记为该问题的重复。这是解决此问题的最佳方法。 ionic app iOS 9问题$ rootScope:infdig达到10个$digest()迭代 这篇文章中的选定答案将您带到该插件,该插件用angular修

  • 我希望使用相同的路由路径,根据用户角色为我的用户加载稍微不同的视图。 以前,我已经加载了基于当前域的不同路由: 这种方法只依赖于子域,子域在创建时可用,因此所有内容都可以是同步的。我必须对用户进行身份验证,根据其角色加载正确的路由,然后导出路由器以初始化vue应用程序。 理想情况下,我可以加载基于用户角色的,,,其中可以包含角色的所有路由定义。 我正在使用Feathers-vuex,但我似乎不能等

  • 我正在使用Yoeman Angular软件包构建一个Angular前端站点。该项目正使用节点托管在Heroku中。js构建包。 Heroku构建项目时没有错误,它运行Gulp和Bower来安装依赖项。执行启动脚本并编译项目后,索引页面加载不会出现问题,但任何其他非主页的页面(例如登录页面)都会出现“无法获取/登录”消息。 这似乎是一个常见的问题,因为我读过许多关于如何解决Heroku上的Angul