Nativescript @Input 字符串未通过但数字通过
Nativescript @Input string not passing but number does
我有这种奇怪的行为,当我将 @Input 与字符串一起使用时,我得到“未定义”,但如果它是一个数字,则数据似乎已被传递。
自定义进度条-component.ts
import { Component, OnInit, Input, ViewChild, ElementRef} from '@angular/core';
@Component({
moduleId: module.id,
selector: 'custom-progress-bar',
templateUrl: './custom-progress-bar.component.html',
styleUrls: ['./custom-progress-bar.component.css']
})
export class CustomProgressBarComponent implements OnInit {
@Input() step: string;
@Input() stepstring : string;
constructor() { }
ngOnInit() {
console.log("step" + this.step); // 1
console.log("stepstring" + this.stepstring); // undefined
}
}
home.html
<StackLayout>
<custom-progress-bar [step]="1" [stepstring]="toto"></custom-progress-bar>
</StackLayout>
我误会了什么?
通过使用括号,您告诉 Angular 您传递的值需要进行插值。不完全确定为什么数字有效,可能是某种隐式处理,因为变量不能以数字开头。
您可以删除括号或将显式字符串传递给内插属性:
<StackLayout>
<custom-progress-bar [step]="1" stepstring="toto"></custom-progress-bar>
</StackLayout>
或带括号
<StackLayout>
<custom-progress-bar [step]="1" [stepstring]="'toto'"></custom-progress-bar>
</StackLayout>
如果是原始值,我更喜欢 bracket-less 属性,但这取决于您。
我有这种奇怪的行为,当我将 @Input 与字符串一起使用时,我得到“未定义”,但如果它是一个数字,则数据似乎已被传递。
自定义进度条-component.ts
import { Component, OnInit, Input, ViewChild, ElementRef} from '@angular/core';
@Component({
moduleId: module.id,
selector: 'custom-progress-bar',
templateUrl: './custom-progress-bar.component.html',
styleUrls: ['./custom-progress-bar.component.css']
})
export class CustomProgressBarComponent implements OnInit {
@Input() step: string;
@Input() stepstring : string;
constructor() { }
ngOnInit() {
console.log("step" + this.step); // 1
console.log("stepstring" + this.stepstring); // undefined
}
}
home.html
<StackLayout>
<custom-progress-bar [step]="1" [stepstring]="toto"></custom-progress-bar>
</StackLayout>
我误会了什么?
通过使用括号,您告诉 Angular 您传递的值需要进行插值。不完全确定为什么数字有效,可能是某种隐式处理,因为变量不能以数字开头。
您可以删除括号或将显式字符串传递给内插属性:
<StackLayout>
<custom-progress-bar [step]="1" stepstring="toto"></custom-progress-bar>
</StackLayout>
或带括号
<StackLayout>
<custom-progress-bar [step]="1" [stepstring]="'toto'"></custom-progress-bar>
</StackLayout>
如果是原始值,我更喜欢 bracket-less 属性,但这取决于您。