[英]Calling method from a Angular 2 class inside template
我有一個 angular 2 應用程序,它有一個名為User
的類。 該用戶有一個名為deleted_at
的屬性,該屬性要么為nul
,要么包含日期時間,顯然如果deleted_at
屬性不為null
,則該用戶將被刪除。 這是我的 user.ts 文件的樣子:
用戶.ts
export class User {
id: number;
email: string;
created_at: string;
first_name: string;
last_name: string;
deleted_at: any;
name() {
if (this.deleted_at === null) {
return this.first_name;
} else {
return 'DELETED';
}
}
}
現在我希望我可以用簡單的一行在我的模板中調用 name:
{{ user.name }}
然而,這沒有返回任何內容,您如何在 angular 2 模板中調用某些函數? 或者這是不允許的?
編輯:為了稍微清理一下,這是我在組件user-list.component.ts 中使用的類User
,在此組件中處理多個用戶。
要么你像這樣調用方法:
{{user.name()}} // instead of {{user.name}}
對於這種方法,您需要注意您將丟失執行上下文( this
)。 有關更多詳細信息,請參閱此問題:
或者您將方法定義為 getter,以便您可以在模板中使用user.name
:
get name() {
if (this.deleted_at === null) {
return this.first_name;
} else {
return 'DELETED';
}
}
如果您引用的模板來自上面的組件,您可以簡單地執行{{ name() }}
。 在 Angular 2 中,您不必像在 Angular 1 中那樣首先引用您的組件來調用方法。 如果您的類只是您在組件中聲明的模型,您必須首先獲取對該模型的引用,然后調用您的方法{{ user.name() }}
。 但是,如果您的方法只是一個普通的 getter,我將只訪問公共屬性而不是在那里調用方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.