如何在具有getter和setter的属性上使用Aurelia的可绑定装饰器

詹斯

我没有问题使用@bindable装饰器在类上的属性。例如

export class SomeClass {
    @bindable public SomeProperty: Date = new Date();
}

但是,当我将其与具有getter / setter实现的属性一起使用时,我感到很沮丧。例如

export class SomeClass2 {
    // Where should the @bindable go now?
    private _someProperty: Date = new Date();

    public get SomeProperty(): Date {
        return this._someProperty;
    }

    public set SomeProperty(value: Date) {
        // Do some manipulation / validation here
        this._someProperty = value;
    }
}

我确定这里缺少一些简单的东西...

PW Kad

可绑定的工作原理是在用于观察更改的属性上添加一个getter和setter。建议您使用${propertyName}Changed(newValue, oldValue)回调方法来完成您要尝试的操作。这是一个ES2016示例:

视图模型

import {bindable} from 'aurelia-framework';

export class MyCustomElement {
  @bindable name;

  _name;
  errorMessage = '';

  nameChanged(newValue) {
    if(newValue.length >= 5 ) {
      this.errorMessage = 'Name is too long';
    }
    else {
      this._name = newValue;
      this.errorMessage = '';
    }
  }
}

看法

<template>
  <p>Name is: ${_name}</p>
  <p>Error is: ${errorMessage}</p>
</template>

请注意,由于ES2016没有私有变量,因此我可以在View中使用私有后备字段。我不确定是否可以在TypeScript中执行此操作,但是请注意,更改name代码中属性的值也会触发nameChanged回调触发。因此,在这种情况下,您需要检查是否newValue等于this._name并忽略它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

自定义属性上的可绑定装饰器是否可以锁定为 oneWay 或 oneTime?

来自分类Dev

在具有自己属性的对象属性上使用getter和setter

来自分类Dev

具有仅HTML定制元素的Aurelia可绑定属性

来自分类Dev

使用属性装饰器的Getter返回对象没有属性

来自分类Dev

仅具有getter的属性与具有getter和private setter的属性

来自分类Dev

具有单个getter和setter的Delphi属性

来自分类Dev

使用反射来识别给定装饰器的属性

来自分类Dev

限制 getter 和 setter 可访问的属性

来自分类Dev

如何在Swift中将NSUserDefaults与属性getter和setter结合使用?

来自分类Dev

如何在控制器操作上同时具有PUT和POST路由属性?

来自分类Dev

如何在Aurelia中具有复杂的绑定?

来自分类Dev

具有完全自定义getter和setter的属性的“弱”和“复制”属性

来自分类Dev

如何在抽象类中使用getter和setter

来自分类Dev

如何在getter和setter中使用Enums?

来自分类Dev

如何在JavaScript中使用setter和getter,遇到错误

来自分类Dev

如何在抽象类中使用getter和setter

来自分类Dev

如何在 Ruby 中使用 getter 和 setter?

来自分类Dev

带有getter / setter的变量在覆盖的存储属性上不能具有初始值

来自分类Dev

在公共实例上使用 getter 和 setter 来设置该类的私有实例时,会设置哪个类实例的属性?

来自分类Dev

当redux有属性时,如何在litElement中使用@property装饰器语法

来自分类Dev

如何在Aurelia中使用具有多个属性的computeFrom

来自分类Dev

无法在具有onmethod属性的lombok setter / getter上生成JavaDoc

来自分类Dev

如何在瞬态上使用可绑定约束来避免“无法读取只写属性”

来自分类Dev

如何通过使用触发器将另一个控件绑定到Setter Value属性上?

来自分类Dev

如何在样式,设置器和HierarchicalDataTemplate的子属性上设置DataContext绑定?

来自分类Dev

如何内省getter和setter具有不同类型的字段?

来自分类Dev

javascript引擎如何在具有原型的对象上设置属性,而该对象具有该属性的设置器?

来自分类Dev

如何在Magritte中为Description指定不同的getter和setter访问器?

来自分类Dev

初始化具有 getter 和 setter 的字段?

Related 相关文章

  1. 1

    自定义属性上的可绑定装饰器是否可以锁定为 oneWay 或 oneTime?

  2. 2

    在具有自己属性的对象属性上使用getter和setter

  3. 3

    具有仅HTML定制元素的Aurelia可绑定属性

  4. 4

    使用属性装饰器的Getter返回对象没有属性

  5. 5

    仅具有getter的属性与具有getter和private setter的属性

  6. 6

    具有单个getter和setter的Delphi属性

  7. 7

    使用反射来识别给定装饰器的属性

  8. 8

    限制 getter 和 setter 可访问的属性

  9. 9

    如何在Swift中将NSUserDefaults与属性getter和setter结合使用?

  10. 10

    如何在控制器操作上同时具有PUT和POST路由属性?

  11. 11

    如何在Aurelia中具有复杂的绑定?

  12. 12

    具有完全自定义getter和setter的属性的“弱”和“复制”属性

  13. 13

    如何在抽象类中使用getter和setter

  14. 14

    如何在getter和setter中使用Enums?

  15. 15

    如何在JavaScript中使用setter和getter,遇到错误

  16. 16

    如何在抽象类中使用getter和setter

  17. 17

    如何在 Ruby 中使用 getter 和 setter?

  18. 18

    带有getter / setter的变量在覆盖的存储属性上不能具有初始值

  19. 19

    在公共实例上使用 getter 和 setter 来设置该类的私有实例时,会设置哪个类实例的属性?

  20. 20

    当redux有属性时,如何在litElement中使用@property装饰器语法

  21. 21

    如何在Aurelia中使用具有多个属性的computeFrom

  22. 22

    无法在具有onmethod属性的lombok setter / getter上生成JavaDoc

  23. 23

    如何在瞬态上使用可绑定约束来避免“无法读取只写属性”

  24. 24

    如何通过使用触发器将另一个控件绑定到Setter Value属性上?

  25. 25

    如何在样式,设置器和HierarchicalDataTemplate的子属性上设置DataContext绑定?

  26. 26

    如何内省getter和setter具有不同类型的字段?

  27. 27

    javascript引擎如何在具有原型的对象上设置属性,而该对象具有该属性的设置器?

  28. 28

    如何在Magritte中为Description指定不同的getter和setter访问器?

  29. 29

    初始化具有 getter 和 setter 的字段?

热门标签

归档