Ember 与解析器的双向数据绑定

Ember Two-way data binding with parser

我是 ember 的新手——到目前为止我很喜欢它。

我正在使用 Ember-数据,并且我有一个属性需要包含一些结构化 JSON。但是,我想使用 textarea 来编辑此属性。 textarea 不应显示 JSON "as JSON" 而是根据其他一些任意标准。例如,如果我想将 CSV 数据保存为 JSON (每行是一个字符串数组等),但将其显示为 CSV。我在 Angular 中使用指令中的 $parser$formatter 函数构建了类似的东西,但我不知道如何在 Ember.[=19 中解决这个问题=]

当然有一个很好的方法来做到这一点,我只是不知道从哪里开始。

您应该使用 computed property 因此:

export default Ember.Object.extend({
  data: DS.attr('json'),

  dataAsCsv: function(key, value, previousValue){
    // setter
    if (arguments.length > 1) {
      this.set('data', csvToJson( value.toJson );
    }

    // getter
    return jsonToCsv( this.get('data') );
  }.property('data')
});