我有一个角度为2的应用程序,它有一个名为User的类。此用户具有名为deleted_at的属性,该属性为null或包含日期时间,显然,如果deleted_at属性不为null,则删除用户。这是我的user.ts文件的外观:
User.ts
{{ user.name }}
现在我希望我可以用一个简单的行在模板中调用name:
{{1}}
然而,这不会返回任何内容,如何在角度2模板中调用某些函数?或者这不允许?
编辑清除一些内容,这是我在我的组件 user-list.component.ts 中使用的类用户,处理了多个用户在这个组件中。
答案 0 :(得分:16)
要么调用这样的方法:
{{user.name()}} // instead of {{user.name}}
对于这种方法,您需要注意丢失执行上下文(this
)。有关详细信息,请参阅此问题:
或者您将方法定义为getter,以便在模板中使用user.name
:
get name() {
if (this.deleted_at === null) {
return this.first_name;
} else {
return 'DELETED';
}
}
答案 1 :(得分:0)
如果您引用的模板来自上面的组件,则可以执行{{ name() }}
。在Angular 2中,你不必首先引用你的组件来调用方法,就像在Angular 1中一样。如果您的类只是您在组件中声明的模型,则必须先获取对该模型的引用,然后调用方法{{ user.name() }}
。但是,如果你的方法只是一个普通的getter,我只会访问一个公共属性,而不是在那里调用一个方法。