Calling method from a Angular 2 class inside template

前端 未结 2 747
野性不改
野性不改 2020-12-11 15:09

I have a angular 2 application that has a class called User. This user has a attribute called deleted_at that is either null or contains a datetime, obviously the user is de

相关标签:
2条回答
  • 2020-12-11 15:45

    Either you call the method like this:

    {{user.name()}} // instead of {{user.name}}
    

    For this approach you need to be aware that you will lose the execution context (this). See this question for more details:

    • ng-lightning - data object is undefined on lookup

    Or you define your method as a getter so you can use user.name in your template:

    get name() {
      if (this.deleted_at === null) {
        return this.first_name;
      } else {
        return 'DELETED';
      }
    }
    
    0 讨论(0)
  • 2020-12-11 15:47

    If the template you are refering to is from your component above you can simple do {{ name() }}. In Angular 2 you dont have to refer to your component first to call methods as it was in Angular 1 the case. In case your class is just a model that you have declared in your componet, you have to get the reference to that model first and then call your method {{ user.name() }}. However, if your method is just a plain getter I would just access a public property instead of calling a method there.

    0 讨论(0)
提交回复
热议问题