我想知道这是一个错误,还是我错过了什么......
在ember.Select上,您可以将'selection'设置为计算别名,并且它可以正常工作。
selection: Em.computed.alias('parentView.controller.test3')
您可以将'valueBinding'设置为路径并且它可以正常工作。
valueBinding: 'parentView.controller.test2'
但是你不能将'value'设置为计算的别名,这不起作用。
value: Em.computed.alias('parentView.controller.test')
我已经包含了一个在最新的ember上演示这个的jsfiddle。我在这里错过了什么吗?我以为我读过视图中的绑定会被默默地弃用,而我一直在尝试使用Em.computed.alias()。
答案 0 :(得分:1)
这是因为value
上的Ember.Select
是一个计算属性,而你正在重写那个破坏代码隐藏的计算属性
/**
In single selection mode (when `multiple` is `false`), value can be used to
get the current selection's value or set the selection by it's value.
It is not currently supported in multiple selection mode.
@property value
@type String
@default null
*/
value: Ember.computed(function(key, value) {
if (arguments.length === 2) { return value; }
var valuePath = get(this, 'optionValuePath').replace(/^content\.?/, '');
return valuePath ? get(this, 'selection.' + valuePath) : get(this, 'selection');
}).property('selection'),
而selection
只是一个无聊的财产
/**
When `multiple` is `false`, the element of `content` that is currently
selected, if any.
When `multiple` is `true`, an array of such elements.
@property selection
@type Object or Array
@default null
*/
selection: null