ember select:选择计算别名vs值计算别名

时间:2013-11-21 23:28:08

标签: ember.js

我想知道这是一个错误,还是我错过了什么......

在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()。

http://jsfiddle.net/3DzzZ/

1 个答案:

答案 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