为什么要写static get parameters()
Why do I need to write static get parameters()
我一直在尝试将我的 Ionic 1 应用程序迁移到 Ionic 2,但遇到了很多新术语和问题。
我真的不明白 get parameters() 的必要性,以及在该函数中 return 什么时候和什么变量。
例如(导航):
static get parameters() {
return [[NavController]];
}
以前在旧的 ionic 构建中(我不确定我正在开发哪个版本),我可以导航到没有此功能的页面。在最新的 ionic 2 build(2.0.0-beta.25) 中,没有这个 get parameters() 函数,它不会导航到下一个目标页面,但没有错误。
我知道一个现有的 post:
因此,在什么情况下我应该return,我应该return什么变量?
在 ES6 中,依赖注入获取它需要解析的类型列表,并将实例传递给 class 的构造函数。
它必须是静态的,否则它们无法被读取在创建一个实例之前。
在 TypeScript 中,如果应用它们(或 @Inject()
注释),它可以从构造函数参数中获取这些类型。
Return class 的构造函数参数类型,按照它们在构造函数参数列表中列出的顺序排列。
有关示例,请参阅 。
事实上,Angular2 尝试使用 ReflectionCapabilities
的 parameters
方法找出要注入到 class 的构造函数中的内容 class:
这个方法尝试了几件事:
内的parameters
类型(即class属性,即static属性)
@Component({
(...)
})
export class SomeComponent {
constructor(http) {
}
static get parameter() {
return [[Http]];
}
}
在 parameters
元数据中 class(如果有)。它由 @Inject
装饰器填充。并不是说 ES6
不支持参数装饰器
@Component({
(...)
})
export class SomeComponent {
constructor(@Inject(Http) http) { // == http:Http
}
}
在使用构造函数的参数类型内部创建的 design:paramtypes
元数据中。对于 ES6,此元数据不可用,因为无法使用方法参数的类型。
@Component({
(...)
})
export class SomeComponent {
constructor(http:Http) {
}
}
基于这些类型,Angular2 寻找相应的提供程序来获取要注入的实例。
我一直在尝试将我的 Ionic 1 应用程序迁移到 Ionic 2,但遇到了很多新术语和问题。
我真的不明白 get parameters() 的必要性,以及在该函数中 return 什么时候和什么变量。
例如(导航):
static get parameters() {
return [[NavController]];
}
以前在旧的 ionic 构建中(我不确定我正在开发哪个版本),我可以导航到没有此功能的页面。在最新的 ionic 2 build(2.0.0-beta.25) 中,没有这个 get parameters() 函数,它不会导航到下一个目标页面,但没有错误。
我知道一个现有的 post:
因此,在什么情况下我应该return,我应该return什么变量?
在 ES6 中,依赖注入获取它需要解析的类型列表,并将实例传递给 class 的构造函数。
它必须是静态的,否则它们无法被读取在创建一个实例之前。
在 TypeScript 中,如果应用它们(或 @Inject()
注释),它可以从构造函数参数中获取这些类型。
Return class 的构造函数参数类型,按照它们在构造函数参数列表中列出的顺序排列。
有关示例,请参阅
事实上,Angular2 尝试使用 ReflectionCapabilities
的 parameters
方法找出要注入到 class 的构造函数中的内容 class:
这个方法尝试了几件事:
内的
parameters
类型(即class属性,即static属性)@Component({ (...) }) export class SomeComponent { constructor(http) { } static get parameter() { return [[Http]]; } }
在
不支持参数装饰器parameters
元数据中 class(如果有)。它由@Inject
装饰器填充。并不是说 ES6@Component({ (...) }) export class SomeComponent { constructor(@Inject(Http) http) { // == http:Http } }
在使用构造函数的参数类型内部创建的
design:paramtypes
元数据中。对于 ES6,此元数据不可用,因为无法使用方法参数的类型。@Component({ (...) }) export class SomeComponent { constructor(http:Http) { } }
基于这些类型,Angular2 寻找相应的提供程序来获取要注入的实例。