您好我试图创建一个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。
答案 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>