标签: angular2-routing

未捕获的ReferenceError:在angular2中未定义require

<html>
<head>
<title>Angular 2 QuickStart</title>
<!-- 1. Load libraries -->
<script src="node_modules/angular2/bundles/angular2-polyfills.js"></script>
<script src="node_modules/rxjs/bundles/Rx.umd.js"></script>
<script src="node_modules/angular2/bundles/angular2-all.umd.js"></script>
<!-- 2. Load our 'modules' -->
<script src='app/app.component.js'></script>
<script src='app/boot.js'></script>

<!--upgrade-->
<script src="node_modules/angular2/upgrade.js"></script>
</head>
<!-- 3. Display the application -->
<body>
<my-app>Loading...</my-app>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

没有<script src="node_modules/angular2/upgrade.js"></script>代码工作正常.当我包括upgrade.js.it显示"未捕获的ReferenceError:require未在angular2中定义".如何克服此错误.

angular2-routing angular

7
推荐指数
1
解决办法
2万
查看次数

Angular 2中路线变化时的结束间隔

我在Angular 2组件中启动一个计时器,它位于路由器插座内.

setInterval(() => {
    ...
}, 10000);
Run Code Online (Sandbox Code Playgroud)

当我离开嵌入组件的路径时,计时器不会退出.我怎样才能做到这一点?

javascript typescript angular2-routing angular

7
推荐指数
3
解决办法
1万
查看次数

使用RouterLink动态添加元素

当我把一个锚元素放在像这样的角度2组件中的某个部分时,

<a [routerLink]="['/LoggedIn/Profile']">Static Link</a>
Run Code Online (Sandbox Code Playgroud)

一切都很好.单击链接时,角度路由器将我路由到目标组件.

现在我想动态添加相同的链接.在我的应用程序的某个地方,我有一个"通知组件",其唯一的责任是显示通知.

通知组件执行如下操作:

  <div [innerHTML]="notification.content"></div>
Run Code Online (Sandbox Code Playgroud)

其中notification.content是NotificationComponent类中的字符串变量,包含要显示的HTML.

notification.content变量可以包含类似的内容

 <div>Click on this <a [routerLink]="['/LoggedIn/Profile']">Dynamic Link</a> please</div>
Run Code Online (Sandbox Code Playgroud)

一切正常,并显示在我的屏幕上,但当我点击动态链接时没有任何反应?!

有没有办法让角度路由器使用这个动态添加的链接???

PS.我知道DynamicComponentLoader,但我真的需要一个更无限制的解决方案,我可以将各种HTML发送到我的通知组件,具有各种不同的链接....

javascript typescript angular2-routing angular

7
推荐指数
2
解决办法
4084
查看次数

为什么这条路线在直接导航时不匹配?

对于记录:这是使用当前相当新的"@angular/router": "3.0.0-alpha.8",路由定义位于帖子的底部.

尝试在我的应用程序中导航时,行为会有所不同,具体取决于我是直接输入URL还是跟随链接:

  • Works:输入http://localhost:9292地址栏,正确转发到http://localhost:9292/about
  • Works:直接http://localhost:9292/about通过地址栏导航
  • Works:如果我http://localhost:9292/about/projects通过<a>标签导航,在FrontComponent[routerLink]="['projects']"属性的上下文中,路由工作正常.
  • 损坏:直接导航到http://localhost:9292/about/projects导致以下错误消息(缩短Stacktrace):

    Unhandled Promise rejection: Cannot match any routes: 'projects' ; Zone: angular ; Task: Promise.then ; Value: Error: Cannot match any routes: 'projects'
    Stack trace:
    applyRedirects/<@http://localhost:9292/node_modules/@angular/router/apply_redirects.js:29:34
    Observable.prototype.subscribe@http://localhost:9292/node_modules/rxjs/Observable.js:52:57
    
    Run Code Online (Sandbox Code Playgroud)

我可能在这里做错了什么?有可能有任何方法可以查看错误消息中已拒绝的所有路由吗?

编辑,因为现在已经多次建议:我不怀疑这是服务器端问题.以前的路由router-deprecated工作正常,HTML从失败的路由服务看起来很好.但为了以防万一,这是相关的服务器端路由代码(rubysinatra):

# By now I have too often mistakenly attempted to load other assets than
# …
Run Code Online (Sandbox Code Playgroud)

angular2-routing angular

7
推荐指数
1
解决办法
3706
查看次数

Angular 2基于角色的导航在同一路径上

我有一个关于Angular 2路由器的小问题,3.0.0-rc.1我希望根据用户角色(例如AdminComponent或UserComponent)导航到不同的主组件.任何人都可以帮助修改以下路线,以便我可以实现所需的功能吗?

{path: 'login', component: LoginComponent},  // <--- This redirects to '/' in case user is logged in
{
  path: '',
  component: HomeComponent,               
  canActivate: [AuthGuardService],  // <--- Check if user is logged in, else redirect to login
  children: [
    {
      path: '',
      component: AdminComponent  // <--- Want to navigate here if user role is 'admin'
    },
    {
      path: '',
      component: UserComponent  // <--- Want to navigate here if user role is 'user'
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

AuthGuardService.ts

import {Injectable} …
Run Code Online (Sandbox Code Playgroud)

javascript authentication angular2-routing angular

7
推荐指数
1
解决办法
3199
查看次数

Angular 2.0中的路由策略.我可以保留自己的历史堆栈吗?

我在Angular 2.0中有一个特殊的情况,有路由

  1. 我不想重复导航.即,如果用户转到页面a - >然后转到页面b->然后再转到页面a->然后转到页面c并且当用户按下后退按钮时,应该将用户重定向到页面b而不是页面a .我想要实现的是多次按下后退按钮不应多次显示同一页面.所以如果我做了> b> c> a> c> b> a> c> b> a然后开始按回:页面a,b,c应该只出现一次而不是基于常规的浏览器行为.

  2. 成功登录后,如果我按下后退按钮,登录屏幕不应该出现,而是应该退出或类似空白URL而不是登录URL.

有什么建议如何实现?

我应该NavigationStart/NavigationEnd在那里使用和写我的逻辑吗?

angular2-routing angular

7
推荐指数
1
解决办法
4223
查看次数

模块延迟加载时显示加载动画?

在我的主要路线中,我将我的个人资料模块延迟加载,/profile如下所示:

  {
      path: '',
      component: HomeComponent
  },
  {
      path: 'profile', loadChildren: './profile/profile.module#ProfileModule'
  },
  {
      path: '**',
      redirectTo: '',
      pathMatch: 'full'
  }
Run Code Online (Sandbox Code Playgroud)

但是,我的配置文件模块加载需要大约1.5到2秒,这很慢.我想在我的模块加载时显示某种加载动画,无论如何都要这样做吗?我试过这样做:

app.component.html

<!-- other stuff ... -->

<router-outlet></router-outlet>
<div class="loading">
  <div class="spinner">
    <div class="rect1"></div>
    <div class="rect2"></div>
    <div class="rect3"></div>
    <div class="rect4"></div>
    <div class="rect5"></div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

在我的CSS里面,我有:

  /* default .loading styles, .loading should be invisible, opacity: 0, z-index: -1 */
  .loading {
      opacity: 0;
      transition: opacity .8s ease-in-out;
      position: fixed;
      height: 100%;
      width: 100%;
      top: 0;
      left: 0;
      background: …
Run Code Online (Sandbox Code Playgroud)

angular2-routing angular

7
推荐指数
1
解决办法
1464
查看次数

角度路由与离子路由

我是ionic2的新手.与纯角度路由相比,它的路由有些奇怪.在Angular中:

const appRoutes: Routes = [
  { path: 'crisis-center', component: CrisisListComponent },
  { path: 'hero/:id',      component: HeroDetailComponent },
  {
    path: 'heroes',
    component: HeroListComponent,
    data: { title: 'Heroes List' }
  },
  { path: '',
    redirectTo: '/heroes',
    pathMatch: 'full'
  },
  { path: '**', component: PageNotFoundComponent }
];

@NgModule({
imports: [
  RouterModule.forRoot(appRoutes)
  // other imports here
],
Run Code Online (Sandbox Code Playgroud)

我们传递一个常量类型Routes.

在Ionic(sidemenu starter)中,他们传递一个组件来forRoot运行.

import { MyApp } from './app.component';
imports: [
    BrowserModule,
    IonicModule.forRoot(MyApp),
],
Run Code Online (Sandbox Code Playgroud)

任何的想法?

ionic2 angular2-routing angular

7
推荐指数
1
解决办法
1万
查看次数

Angular2如何在保持路线的同时显示错误页面

如果这是在其他地方,请道歉,但我的正常搜索策略让我失望.

当我从API收到500时,我想显示自定义错误页面.我正在使用restangular并有一个响应拦截器,当我收到500时,它会重定向到错误页面,使用:

this.router.navigate(['/error']);

这一切都有效.但是,我想在浏览器导航栏中保留以前的URL,以便在用户刷新时再次尝试上一页,而现在他们必须重新导航到损坏的页面再试一次.

谢谢!

angular2-routing angular

7
推荐指数
1
解决办法
1074
查看次数

Angular 4扩展并实现

我有一个类Hero需要扩展GoogleCharts类.我还需要实现OnInit来从params获取一些数据.

我怎样才能做到这一点?

typescript angular2-routing angular

7
推荐指数
1
解决办法
7974
查看次数