我怎样才能让getter和setter在我的模型课上发挥作用?

我的目标是在输入时计算所选日期的整数值,其中包含更新的日期.我本来打算用setter来做,但Angular 4忽略了我模型的setter和getter.

我的模范班:

export class MyModel {
    @Input('date')
    get date(): String {
        console.log('Getting date');
        ...
    }

    set date(val) {
        console.log('Setting date: ' + val);
        ...
    }
}

我的模板:

...
<input class="form-control" name="dp" [(ngModel)]="model.date">
...

但盖特和塞特不起作用.我错过了什么?

推荐答案

将date属性声明为输入的方式看起来不正确,但如果不查看所有代码,很难说这是否是唯一的问题.与其使用@Input('date'),不如像这样声明date属性:private _date: string;.此外,确保您正在使用new关键字实例化模型.最后,使用常规点符号访问属性.

根据以下https://www.typescriptlang.org/docs/handbook/classes.html个示例判断您的工作:

let passcode = "secret passcode";

class Employee {
    private _fullName: string;

    get fullName(): string {
        return this._fullName;
    }

    set fullName(newName: string) {
        if (passcode && passcode == "secret passcode") {
            this._fullName = newName;
        }
        else {
            console.log("Error: Unauthorized update of employee!");
        }
    }
}

let employee = new Employee();
employee.fullName = "Bob Smith";
if (employee.fullName) {
    console.log(employee.fullName);
}

下面是一个plunker,展示了你想要做的事情:

Typescript相关问答推荐

为什么当类类型与方法参数类型不兼容时,该函数可以接受类类型

接口的额外属性作为同一接口的方法的参数类型'

在TypeScrip中分配回调时,参数的分配方向与回调本身相反.为什么会这样呢?

Express Yup显示所有字段的所有错误

是否可以针对联合类型验证类型属性名称?

如何在深度嵌套的Reaction路由对象中隐藏父级?

为什么在leetcode问题的测试用例中,即使我确实得到了比预期更好的解决方案,这段代码也失败了?

刷新页面时,TypeScrip Redux丢失状态

React router 6(数据路由)使用数据重定向

Angular material 无法显示通过API获取的数据

TS2739将接口类型变量赋值给具体变量

Typescript,如何在通过属性存在过滤后重新分配类型?

使用Cypress测试从Reaction受控列表中删除项目

在REACT查询中获取未定义的isLoading态

将类型脚本函数返回类型提取到VSCode中的接口

在打印脚本中将对象类型转换为数组

在TS泛型和记录类型映射方面有问题

如何将对象的字符串文字属性用作同一对象中的键类型

导航链接不触发自定义挂钩

我是否应该在 Next.js 中的服务器组件中获取秘密数据的所有函数中使用使用服务器?