class 内无法识别导入
Import not being recognized within class
---src
|___app
|___add-property
|___add-property.component.ts (where error is found)
|___services
|___add-property.service.ts
app-routing.ts
(添加文件树以供参考)
import { Property } from '../models/Property';
import { AddPropertyService } from '../services/addProperty.service';
import { Routing } from '../app-routing';
export class AddPropertyComponent implements OnInit {
private newProperty :Property;
*** private routing :Routing; *** issue is right here
constructor(private addPropertyService: AddPropertyService) { }
this.routing.doSomething();
}
我的目标是在此代码块的底部调用 this.routing.doSomething。我突出显示问题所在的代码部分——错误是
Cannot find name 'Routing'.
我还从文件中导出了路由(我的路由所在的位置)。
import { Routes, RouterModule } from '@angular/router';
const APP_ROUTES: Routes = [
{ path: '', redirectTo: '/properties', pathMatch: 'full' },
];
export const Routing = RouterModule.forRoot(APP_ROUTES);
有谁知道为什么它找不到名字 'Routing',即使我相信我做的一切都是正确的?
******* 我解决了,下面的答案供将来参考 *******
我遵循了 Angular 'Routing' 文档:
1. I created a app-routing.module.ts and deleted my app-routing.ts
2. Export AppRoutingModule within app-routing.module.ts
3. Import AppRoutingModule into component that was in need of routing (add-
property.component.ts in my question)
4. Also Import Router module from '@angular/router'
5. Inside component constructor --> add private router: Router
6. this.router.navigate() is now available for use
你有:
import { Routing } from '../app-routing';
应该是:
import { Routing } from '../../../app-routing';
更新
看来路径是在正确的地方(见评论)。
好吧,另一件事可能是您将 Routing
用作 Type
。
如果你想将它用作 Type
它应该是 ModuleWithProviders
.
类型
试试这个:
private routing = Routing;
这也应该有效:
private routing: ModuleWithProviders = Routing;
文档:
如果您想使用 doSomething()
功能,您需要将导出更改为其他内容,例如:
export const ROUTING = {
routing: RouterModule.forRoot(APP_ROUTES),
doSomething: () => {
// just do something
}
}
更好的做法是使用 class
或 interface
来保存这些值,你想要所有类型,如果你不遵循这个原则,这就是 typescript 的代价,你将在任何地方以 any
声明结束。
---src
|___app
|___add-property
|___add-property.component.ts (where error is found)
|___services
|___add-property.service.ts
app-routing.ts
(添加文件树以供参考)
import { Property } from '../models/Property';
import { AddPropertyService } from '../services/addProperty.service';
import { Routing } from '../app-routing';
export class AddPropertyComponent implements OnInit {
private newProperty :Property;
*** private routing :Routing; *** issue is right here
constructor(private addPropertyService: AddPropertyService) { }
this.routing.doSomething();
}
我的目标是在此代码块的底部调用 this.routing.doSomething。我突出显示问题所在的代码部分——错误是
Cannot find name 'Routing'.
我还从文件中导出了路由(我的路由所在的位置)。
import { Routes, RouterModule } from '@angular/router';
const APP_ROUTES: Routes = [
{ path: '', redirectTo: '/properties', pathMatch: 'full' },
];
export const Routing = RouterModule.forRoot(APP_ROUTES);
有谁知道为什么它找不到名字 'Routing',即使我相信我做的一切都是正确的?
******* 我解决了,下面的答案供将来参考 *******
我遵循了 Angular 'Routing' 文档:
1. I created a app-routing.module.ts and deleted my app-routing.ts
2. Export AppRoutingModule within app-routing.module.ts
3. Import AppRoutingModule into component that was in need of routing (add-
property.component.ts in my question)
4. Also Import Router module from '@angular/router'
5. Inside component constructor --> add private router: Router
6. this.router.navigate() is now available for use
你有:
import { Routing } from '../app-routing';
应该是:
import { Routing } from '../../../app-routing';
更新
看来路径是在正确的地方(见评论)。
好吧,另一件事可能是您将 Routing
用作 Type
。
如果你想将它用作 Type
它应该是 ModuleWithProviders
.
试试这个:
private routing = Routing;
这也应该有效:
private routing: ModuleWithProviders = Routing;
文档:
如果您想使用 doSomething()
功能,您需要将导出更改为其他内容,例如:
export const ROUTING = {
routing: RouterModule.forRoot(APP_ROUTES),
doSomething: () => {
// just do something
}
}
更好的做法是使用 class
或 interface
来保存这些值,你想要所有类型,如果你不遵循这个原则,这就是 typescript 的代价,你将在任何地方以 any
声明结束。