Ember绑定属性到arraycontroller中的相邻项

时间:2012-06-11 21:05:46

标签: ember.js

我是ember的新手,我仍然使用框架获得我的sealegs。到目前为止,我认为它很棒,除了有一件事我似乎无法弄清楚:如何将数组项的属性绑定到相邻数组项的属性。

详细说明:

我的模型是这样的:

App.SRDate = Ember.Object.extend({
    timeValue: null,
    reductionAmount: null,
    id: null,
    index: null,
    date: Ember.computed(function(){return formatted date as a string}).property('timeValue') ,
    previousDate: ???
});

我有一个简单的数组控制器,它只包含上述对象的列表。我要做的是能够致电App.dates.objectAt(1).get('previousDate')并让它返回App.dates.objectAt(0).get('date')。我最初通过使用previousDate的计算属性来实现它的工作,但它只会在我更改绑定对象中的项时更新(即如果我更改了对象0的日期,它将不会在previousDate中更新为对象1直到我更改对象1中的日期,这导致ember重新计算计算属性)。如果有一种方法可以定义计算属性与哪些对象相关联,那么这可能就是诀窍,但是我不认为计算属性实际上应该用于......

我也尝试过像:

这样的绑定
previousDateBinding: 'App.dates.getObject('+this.get('index')-1+').date' 

但这也不起作用。

提前感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:0)

刚遇到类似的问题,我就是这样解决的:http://jsfiddle.net/aMQU6/1/

在我的ArrayController中,我有一个观察我内容更改的函数。然后,一旦添加它,我将新对象中的属性设置为前一个对象,然后将前一个对象的日期绑定到添加的对象中的previousDate属性。

希望这有帮助!如果您有任何问题,请告诉我。