簡體   English   中英

從模板內的 Angular 2 類調用方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM