为 getter 提供默认值,而不会在 Angular 2 模型类中导致堆栈溢出
Provide default value to getter without causing stack overflow in Angular 2 Model Class
所以我试图找到一种方法来为 JavaScript 中的类的 getter 提供回退行为。这个想法是,如果正在访问的属性在创建时设置为 null,则提供另一个属性(标题)的修改版本。我面临的问题是获取字幕属性时递归调用,因为它正在访问自身。我会简单地重命名为 _subtitle,但使用 TypeScript,您必须修改界面并提供一个一次性的临时值 _subtitle 除了字幕之外,这会破坏界面的语义。
export interface IFoo {
title: string;
subtitle?: string;
}
export class Foo implements IFoo {
public title: string;
public set subtitle(val) {
this.subtitle = val;
}
public get subtitle() {
return this.subtitle ? this.subtitle : this.title.split('//')[0];
};
constructor(obj?: any) {
this.title = obj && obj.title || null;
}
因此,
我实际上不久后就意识到,您始终可以使用私有属性之类的东西作为"临时"存储位置,而不会破坏接口的语义或契约。因此,通过一些简单的更改,我的二传手/吸盘手就可以工作了!
//...
//
private _subtitle: string;
public set subtitle(val) {
this._subtitle = val;
}
public get subtitle() {
return this._subtitle ? this._subtitle : this.title.split('//')[1].trim();
};
//...
相关文章:
- 在VanillaJS中模拟模型双向数据绑定
- 如何检测是否有溢出
- 为集合分配大量的模型弹药
- 如何使用backbone.js从集合中获取模型名称
- 如何通过溢出来判断元素被切断了多少像素:隐藏在父级上
- 骨干模型默认值-todos.js示例中不必要的代码
- EmberJS中支持单字母单词模型
- 2个backbone.js集合,具有相同的模型,但排序顺序不同
- 将不在模型中的数据返回到mvc控制器
- 如何在视图模型contet更新更新上调用Jquery函数
- 如何使用Javascript客户端对象模型检索Sharepoint 2010列表项权限
- 我应该如何检查主干.主干.模型更改时查看
- Ext.js从json构建模型关系的问题
- 显示模块模式在Knockout中设置模型的新实例
- 使用导航属性创建Kendo UI网格模型的问题
- Angular,函数在(模型)工厂中返回值
- 如何将本地json数据加载到Extjs数据模型中
- 有没有比在app.js上绑定模块名称更好的方法来动态加载视图模型和视图以显示模态
- 更新成员数据模型中的记录列表
- 为 getter 提供默认值,而不会在 Angular 2 模型类中导致堆栈溢出