从模板中的 Angular 2 class 调用方法
Calling method from a Angular 2 class inside template
我有一个 angular 2 应用程序,它有一个名为 User
的 class。此用户有一个名为 deleted_at
的属性,它是 nul
l 或包含日期时间,显然如果 deleted_at
属性 不是 null
,则用户将被删除.这是我的 user.ts 文件的样子:
User.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';
}
}
}
现在我希望我可以用简单的一行在我的模板中调用名称:
{{ user.name }}
这可是returns没什么,你怎么能调用angular2模板中的某些函数呢?或者这是不允许的?
编辑: 稍微清理一下,这是我在组件 user 中使用的 class User
-list.component.ts,多个用户在该组件中处理。
要么你这样调用方法:
{{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 中那样首先引用您的组件来调用方法。如果您的 class 只是您在组件中声明的模型,您必须首先获取对该模型的引用,然后调用您的方法 {{ user.name() }}
。但是,如果您的方法只是一个普通的 getter,我将只访问 public 属性 而不是在那里调用方法。
我有一个 angular 2 应用程序,它有一个名为 User
的 class。此用户有一个名为 deleted_at
的属性,它是 nul
l 或包含日期时间,显然如果 deleted_at
属性 不是 null
,则用户将被删除.这是我的 user.ts 文件的样子:
User.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';
}
}
}
现在我希望我可以用简单的一行在我的模板中调用名称:
{{ user.name }}
这可是returns没什么,你怎么能调用angular2模板中的某些函数呢?或者这是不允许的?
编辑: 稍微清理一下,这是我在组件 user 中使用的 class User
-list.component.ts,多个用户在该组件中处理。
要么你这样调用方法:
{{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 中那样首先引用您的组件来调用方法。如果您的 class 只是您在组件中声明的模型,您必须首先获取对该模型的引用,然后调用您的方法 {{ user.name() }}
。但是,如果您的方法只是一个普通的 getter,我将只访问 public 属性 而不是在那里调用方法。