Angular Router Guard错误无法解析所有参数

时间:2017-12-18 15:26:09

标签: angular router guard

您好我试图创建一个Router Guard:

我的auth.guard.ts文件:

import { CanActivate,
         Router,
         ActivatedRouteSnapshot,
         RouterStateSnapshot } from '@angular/router';

export class AuthGuard implements CanActivate{
  constructor(private router: Router) { }
  canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot){
    return true; // just for tests gonna change that later
  }
}

我将它app.module.ts导入提供商。

问题是我现在得到这个错误:

 Can't resolve all parameters for AuthGuard: (?).

有什么问题?我该如何解决这个问题?我的意思是我甚至没有在我的APP_ROUTES中使用Guard。

1 个答案:

答案 0 :(得分:0)

你错过了@Injectable() export class AuthGuard implements CanActivate { ... 装饰者:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:orientation="horizontal">

        <EditText
            android:id="@+id/search_query_text_view"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:hint="@string/hint" />

        <Button
            android:id="@+id/search_button1"
            android:layout_width="42dp"
            android:layout_height="42dp"
            android:drawableLeft="@drawable/search"
            />

    </LinearLayout>

    <TextView
        android:id="@+id/result"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:text="Results" />

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <ListView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="10dp" />

        <ProgressBar
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:visibility="invisible" />
    </RelativeLayout>

</LinearLayout>