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')
});
我是 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')
});