Angular 4属性获取绑定不显示任何内容

时间:2017-11-13 11:09:12

标签: angular angular2-template

我有以下代码

export class TestClass{
    private time: string = "Test";

    public get TimeFormatted(): string {
        return this.time;
    }
}

并在我的模板中

   <span>{{item.TimeFormatted}}</span>

但html中没有显示任何内容。

2 个答案:

答案 0 :(得分:1)

我猜您只是在您的请求中映射模型,如下所示。

let Array<TestClass> arr = response.json();

如果是这样,这将不会影响模型中实现的任何方法。 要使用模型方法,您需要从类中启动一个新对象并映射其属性。如果您在TS中启动模型,则会正确添加函数,如果您只是根据请求对其进行解析,则可以像平常一样访问属性,但由于您的对象未启动,因此无法添加您的方法,刚刚解析过。

const newArr = new Array<TestClass>();
arr.foreach(item =>{
  let newItem = new TestClass();
  //mapping stuff 
  newArr.push(newItem);
});

答案 1 :(得分:1)

如果您想使用getter和setter,请尝试以下代码。每次更改时间时,都会调用setter函数,并且可以使用任何条件。您还可以在此处查看工作版https://stackblitz.com/edit/ionic-getters-setters

TS文件

import { Component } from '@angular/core';

@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})
export class HomePage {
  public _time: string;
  public password : string;


  constructor() {
    this._time="Test";
    this.password="password";

  }


    public get time(): string {
        return this._time;
    }

    public set time(value) {
      alert("set");
      if(this.password==="password"){
    this._time = value+"verified";
      }
  }

}

HTML代码

<input type="text" [(ngModel)]="time" />