Aurelia中的动态与选项绑定?

时间:2017-05-04 19:46:30

标签: aurelia

我多次重读文档,但我没有得到它。这两者有什么区别?是否只有动态,您不必定义“可绑定”属性?如果是这样,为什么不只是使用动态总是。一个用户有什么用例?我只是对此感到困惑,并希望有人能够澄清这一点。

1 个答案:

答案 0 :(得分:1)

动态选项绑定仅适用于自定义属性,不适用于自定义元素。当你不知道所有可能的属性的名称或者有太多的属性而你是一个像我这样的懒人时,它们很有用。

因此,而不是声明几个可绑定属性

export class MyCustomAttribute {
    @bindable prop1;

    prop1Changed(newValue, oldValue) { }

    @bindable prop2;

    prop2Changed(newValue, oldValue) { }

    @bindable prop3;

    prop3Changed(newValue, oldValue) { }
}

您可以使用@dynamicOptions修饰de class并使用泛型方法来检测已设置的属性

export class MyCustomAttribute {

  propertyChanged(name, newValue, oldValue){
    switch(name){
      case 'prop1':
        //do something
        break;
      case 'prop2':
        //do something
        break;
      case 'prop3':
        //do something
        break;
      default:
        //do something
        break;
    }
  }
}

为什么不一直使用@dynamicOptions?因为你大部分时间都会做不必要的条件,这并不酷:)

希望这有帮助!