将输入转换为 Angular2 中的数字?
Cast inputs to numbers in Angular2?
有什么方法可以自动将组件的输入转换为数字吗?
例如这个组件初始化如下:
<list-of-playlists limit="5"></list-of-playlists>
并在此处定义:
@Component({
selector: 'list-of-playlists',
templateUrl: 'list-of-playlists.html'
})
export class MyPlaylistComponent implements OnInit {
@Input() limit: number;
ngOnInit() {
console.log(typeof limit); // string
}
}
有没有办法自动将 limit
转换为数字或整数?
否则我将不得不在 Typescript
中将 is 作为字符串或任何类型键入,或者通过将其强制转换为 ngOnInit()
中的数字来启动组件,我想避免这种情况。
您需要使用 Property Binding:
<list-of-playlists [limit]="5"></list-of-playlists>
根据http://victorsavkin.com/post/119943127151/angular-2-template-syntax(传递常量部分)
<list-of-playlists limit="5">
等同于(即语法糖)
<list-of-playlists [limit]=" '5' ">
也就是说,它总是导致字符串绑定。
正如@Sasxa 在他的回答中已经提到的那样,使用 属性 绑定来获取所需的类型。
有什么方法可以自动将组件的输入转换为数字吗?
例如这个组件初始化如下:
<list-of-playlists limit="5"></list-of-playlists>
并在此处定义:
@Component({
selector: 'list-of-playlists',
templateUrl: 'list-of-playlists.html'
})
export class MyPlaylistComponent implements OnInit {
@Input() limit: number;
ngOnInit() {
console.log(typeof limit); // string
}
}
有没有办法自动将 limit
转换为数字或整数?
否则我将不得不在 Typescript
中将 is 作为字符串或任何类型键入,或者通过将其强制转换为 ngOnInit()
中的数字来启动组件,我想避免这种情况。
您需要使用 Property Binding:
<list-of-playlists [limit]="5"></list-of-playlists>
根据http://victorsavkin.com/post/119943127151/angular-2-template-syntax(传递常量部分)
<list-of-playlists limit="5">
等同于(即语法糖)
<list-of-playlists [limit]=" '5' ">
也就是说,它总是导致字符串绑定。 正如@Sasxa 在他的回答中已经提到的那样,使用 属性 绑定来获取所需的类型。