[英]Injecting activateRoute class in Angular
我正在阅读这本书(pro-Angular-6),我遇到了这些语法
constructor(private model:Model,activatedRoute:ActivatedRoute) {}
我对以下几点感到困惑
我们如何使用 class 而不注入(what is difference between private activatedRoute:ActivatedRoute and activateRoute:ActivatedRoute)
如果我们可以只用作参考类型并限制在构造函数中使用它,如果没问题我尝试在我的组件中使用自定义 class 我收到null injection error
class Emp { name='Bob' id = '12' } constructor(private model:Model,activatedRoute:ActivatedRoute,emp:Emp){}
为什么我只能在构造函数中访问 activated 如果我尝试在方法中访问我收到错误
constructor(activateRoute:ActivatedRoute){ console.log(activatedRoute) //no error } someMethod() { console.log(activatedRoute) //error Did You mean ActivatedRoute console.log(this.activatedRoute) //error proprtey activateRoute Does not exist
}
4)此外,我很困惑我是在定义类型还是使用以下语法在构造函数中注入constructor(activateRoute:ActivatedRoute){}
前任:
constructor(activateRoute:ActivatedRoute){}
要么
constructor(public activateRoute:ActivatedRoute){}
在模板中使用时不会抛出错误,如下所示
<div *ngIf="activateRoute">content goes here </div>
前任:
@injectable({
providedIn:'root'
})
class Emp {
name='Bob'
id = '12'
}
export class AppComponent{
constructor(private model:Model,activatedRoute:ActivatedRoute,emp:Emp){}
}
你的第一个问题是关于 typescript。如果你没有在构造函数参数上指定访问修饰符,它只能在构造函数中访问。
上面的前两个解释是有道理的
activateRoute:ActivatedRoute
作为签名传递给构造函数,所以我只能在构造函数中访问4.我们正在引用类型(与 java 脚本 object 符号混淆)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.