Ember.js Ember.Binding.transform迁移到最新代码

Ember.js Ember.Binding.transform迁移到最新代码,ember.js,Ember.js,Ember.Binding.transform已在最新的Ember中删除或替换。我有许多采用这种形式的绑定: valueBinding: Ember.Binding.transform({ to: function(value, binding) { //return something }, from: function(value, binding) { //return something } }).from('parentView.content.fini

Ember.Binding.transform已在最新的Ember中删除或替换。我有许多采用这种形式的绑定:

valueBinding: Ember.Binding.transform({
  to: function(value, binding) {
    //return something
  },
  from: function(value, binding) {
    //return something
  }
}).from('parentView.content.finishBy'),

有人能告诉我应该如何更新代码以适应新的制度吗?

关于如何更新代码的讨论非常热烈

但是,在您的情况下,我认为您可以使用计算属性:

value: function(key, value){
  if(arguments.length===1){
    //return something
  } else{
    //set and return something
  }
}).property('parentView.content.finishBy')

关于如何更新代码,有一个非常好的讨论

但是,在您的情况下,我认为您可以使用计算属性:

value: function(key, value){
  if(arguments.length===1){
    //return something
  } else{
    //set and return something
  }
}).property('parentView.content.finishBy')

您可以将计算属性定义添加到
Ember.computed
,请参阅 :

Ember.computed.finishBy=function(){
返回Ember.computed('parentView.content.finishBy',函数(键){
var finishBy=Ember.getPath(这是“parentView.content.finishBy”);
return finishBy==='now';
}).cacheable();
};
然后您可以这样使用它:

App.obj=Ember.Object.create({
父视图:{
内容:{
finishBy:“现在”
}
},
finishProp:Ember.computed.finishBy()
});
请参阅中的更多示例



需要明确的是:您不必将自定义计算属性添加到
Ember.computed
。基本上,您可以在代码中的任何位置声明函数。现在考虑一下,您可能希望将助手添加到应用程序名称空间中,而不是将其添加到
Ember
。但这只是个人偏好的问题。

您可以将计算属性定义添加到
Ember.computed
,请参阅 :

Ember.computed.finishBy=function(){
返回Ember.computed('parentView.content.finishBy',函数(键){
var finishBy=Ember.getPath(这是“parentView.content.finishBy”);
return finishBy==='now';
}).cacheable();
};
然后您可以这样使用它:

App.obj=Ember.Object.create({
父视图:{
内容:{
finishBy:“现在”
}
},
finishProp:Ember.computed.finishBy()
});
请参阅中的更多示例



需要明确的是:您不必将自定义计算属性添加到
Ember.computed
。基本上,您可以在代码中的任何位置声明函数。现在考虑一下,您可能希望将助手添加到应用程序名称空间中,而不是将其添加到
Ember
。但这只是个人偏好的问题。

Ember.DateTime对transform有以下引用:Ember.Binding.DateTime=function(format){return this.transform(function(value,Binding){return value?value.toFormattedString(format):null;};};您认为这也应该是一个计算属性吗?Ember.DateTime对transform有以下引用:Ember.Binding.DateTime=function(format){return this.transform(function(value,Binding){return value?value.toFormattedString(format):null;};};你认为这也应该是一个计算属性吗?