从Angular 2类内部模板调用方法

时间:2016-05-23 07:55:58

标签: angular angular2-template

我有一个角度为2的应用程序,它有一个名为User的类。此用户具有名为deleted_at的属性,该属性为null或包含日期时间,显然,如果deleted_at属性不为null,则删除用户。这是我的user.ts文件的外观:

User.ts

{{ user.name }}

现在我希望我可以用一个简单的行在模板中调用name:

{{1}}

然而,这不会返回任何内容,如何在角度2模板中调用某些函数?或者这不允许?

编辑清除一些内容,这是我在我的组件 user-list.component.ts 中使用的类用户,处理了多个用户在这个组件中。

2 个答案:

答案 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,我只会访问一个公共属性,而不是在那里调用一个方法。