您還需要一個get
的比例,否則,您的第二個版本是正確的。
下面是一個例子
@Component({
selector: 'ratio-display',
template: '<span>{{ratio.w/ratio.h}}</span>'
})
export class RatioDisplay {
ratio_ = {w: 1, h: 1};
@Input() set ratio (ratio: {w: number, h: number}) {
if(ratio) {
this.ratio_ = ratio;
}
}
get ratio() {
return this.ratio_;
}
}
@Component({
selector: 'app',
template: `
<div>
<ratio-display [ratio]="ratio"></ratio-display>
</div>
`,
})
export class App {
ratio = {w: 30, h: 45};
}
工作Plnkr可以在這裏找到:https://plnkr.co/edit/4TuMEzfDB6hxyGbC6csQ?p=preview
當然,唯一的原因,你需要一個二傳手在這種情況下,如果要謹防被傳遞無效的成分,如果你只是想要一個簡單的值綁定到,你可以使用
@Component({
selector: 'ratio-display',
template: '<span>{{ratio.w/ratio.h}}</span>'
})
export class RatioDisplay {
@Input() ratio = {w: 1, h: 1};
}
文字也可以直接從傳遞的對象您的模板
<ratio-display [ratio]="{w: 30, h: 45}"></ratio-display>
https://plnkr.co/edit/4TuMEzfDB6hxyGbC6csQ?p=preview
嗯這個代碼是一個獨立的組件的一部分,它不喜歡的工作。沒有getter,它應該直接從HTML標籤屬性中獲取值。我知道它是可行的,因爲它已經在過去實施過了,但它被刪除了,代碼中沒有引用它的地方,只是組件本身。 –
@LucianoFantuzzi很抱歉,我之前誤讀了,我又添了一個例子,沒有getter或setter,並且直接通過標記傳遞值。你有很多選擇。 –
是啊!就是這樣!謝謝你,兄弟!我前段時間閱讀了一些關於避免「感謝」的消息,但是......在這裏,你是! –