我有以下代码
export class TestClass{
private time: string = "Test";
public get TimeFormatted(): string {
return this.time;
}
}
并在我的模板中
<span>{{item.TimeFormatted}}</span>
但html中没有显示任何内容。
答案 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" />