亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么在模板綁定中使用“?”運算符?

為什么在模板綁定中使用“?”運算符?

慕后森 2019-12-03 15:35:04
當我使用時?,綁定效果很好。如果刪除它,則它在視圖中不會顯示任何內容。<span class="subhead">{{project?.category}}</span>你能告訴我區別嗎?以這種方式使用它是一種好習慣嗎?
查看完整描述

3 回答

?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

當Angular在project分配值之前渲染視圖時,將導致異常。?.停止評估何時projectis null或undefined,這通常發生在異步獲取數據的情況下,例如從服務器獲取數據可能會花費一些時間。


下次更改檢測識別到更改時,將重新評估綁定。當project有一個值時,它將綁定project.category。


查看完整回答
反對 回復 2019-12-03
?
函數式編程

TA貢獻1807條經驗 獲得超9個贊

這個安全的導航運算符可防止在獲取值之前渲染視圖。


我們可以通過以下三種方法來修復視圖模板中未定義或空值的錯誤。顯然還有其他方法。


方法1:使用安全導航運算符


<span class="subhead">{{project?.category}}</span>

方法2:使用異步管道


<span class="subhead">{{(project | async )?.category}}</span>

如果要通過@Input()裝飾器從應用程序組件中獲取價值,則可以在應用程序組件中簡化這樣的代碼


@Component({

  selector: 'my-app',

  template: `

    <div>

      <app-project [project]="project | async"></app-project>

    </div>

  `,

})

export class App { ... }

您可以在子組件(例如,項目組件)中使用以下模板


<span class="subhead">{{project.category}}</span>

方法3:通過*ngIf結構指令限制視圖


<span class="subhead" *ngIf="project">{{project.category}}</span>


查看完整回答
反對 回復 2019-12-03
  • 3 回答
  • 0 關注
  • 570 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號