Ember.Binding.transform已被删除或替换为最新的余烬。我有许多采用这种形式的绑定:
valueBinding: Ember.Binding.transform({
to: function(value, binding) {
//return something
},
from: function(value, binding) {
//return something
}
}).from('parentView.content.finishBy'),
有人可以告诉我如何将我的代码更新到新政权吗?
答案 0 :(得分:1)
您可以将计算属性定义添加到Ember.computed
,请参阅
http://jsbin.com/awufuv/edit#source:
Ember.computed.finishBy = function() {
return Ember.computed('parentView.content.finishBy', function(key) {
var finishBy = Ember.getPath(this, 'parentView.content.finishBy');
return finishBy === 'now';
}).cacheable();
};
然后您可以像这样使用它:
App.obj = Ember.Object.create({
parentView: {
content: {
finishBy: 'now'
}
},
finishProp: Ember.computed.finishBy()
});
查看https://github.com/emberjs/ember.js/blob/master/packages/ember-metal/lib/computed.js#L417-434
中的更多示例请注意:您不必强制将自定义计算属性添加到Ember.computed
。您基本上可以在代码中的任何位置声明函数。现在我考虑一下,您可能希望将助手添加到应用程序命名空间,而不是将其添加/调整到Ember
。但这只是个人偏好的问题。
答案 1 :(得分:0)
有关如何更新代码的original commit的讨论非常好。
但是,在您的情况下,我认为您可以使用计算属性:
value: function(key, value){
if(arguments.length===1){
//return something
} else{
//set and return something
}
}).property('parentView.content.finishBy')