我一直试图将我的Ionic 1应用程序迁移到Ionic 2,并且遇到了很多新的术语和问题。
我真的不明白需要get参数()以及在该函数中返回的时间和内容。
例如(To Navigate):
static get parameters() {
return [[NavController]];
}
以前在较旧的离子版本中(我不确定我正在开发哪个版本),我可以导航到没有此功能的页面。在最新的离子2版本(2.0.0-beta.25)中,没有这个获取参数()函数,它只是不会导航到下一个目标页面,但没有错误。
我知道现有帖子: Angular/Ionic 2 - what is a provider and what does `static get parameters()` do?
因此,在什么场合我应该返回以及我返回什么变量?
答案 0 :(得分:1)
在ES6中,依赖注入获取需要解析的类型列表,并将实例传递给类的构造函数。
必须是静态的,否则在创建实例之前 无法 >>
在TypeScript中,如果应用了这些类型(或 按照构造函数参数列表中列出的顺序返回类的构造函数参数的类型。@Inject()
注释),它可以从构造函数参数中获取这些类型。
答案 1 :(得分:1)
事实上,Angular2尝试使用parameters
类的ReflectionCapabilities
方法找出要注入到类的构造函数中的内容:
这种方法尝试了几件事:
在类型的parameters
内(即类属性,即静态属性)
@Component({
(...)
})
export class SomeComponent {
constructor(http) {
}
static get parameter() {
return [[Http]];
}
}
在该类的parameters
元数据中(如果有)。它由@Inject
装饰者填充。并非ES6中不支持参数装饰器
@Component({
(...)
})
export class SomeComponent {
constructor(@Inject(Http) http) { // == http:Http
}
}
在使用构造函数的参数类型内部创建的design:paramtypes
元数据中。使用ES6时,由于无法使用方法参数的类型,因此无法使用此元数据。
@Component({
(...)
})
export class SomeComponent {
constructor(http:Http) {
}
}
基于这些类型,Angular2会查找相应的提供程序以获取要注入的实例。