Backbone无法按/访问嵌套模型属性

时间:2014-11-28 16:01:54

标签: sorting backbone.js

我不知道为什么,但我不能通过我的集合中的嵌套属性对我的集合进行排序。下面是该系列的截图。我可以通过如下所示的“title”属性成功排序,但不能通过rating.critics_rating或ratings.audience_score等嵌套属性进行排序。当我尝试注销嵌套属性的a或b时,我得到“未定义”。

这有效:

  comparator: (a, b) ->
    log 'comparing'
    a = a.get('title') ## works
    b = b.get('title') ## works
    return 0 if a is b
    if a > b then 1 else -1

这不是

  comparator: (a, b) ->
    log 'comparing'
    a = a.get('ratings.critics_rating') ## doesnt work
    b = b.get('ratings.critics_rating') ## doesnt work
    ...

Collection Screenshot

1 个答案:

答案 0 :(得分:2)

Model.get访问模型上的属性,但不尝试访问嵌套属性:a.get('ratings.critics_rating')等同于a.attributes['ratings.critics_rating'],这不是您想要的。

请尝试a.get('ratings').critics_rating

comparator: (a, b) ->
    log 'comparing'
    a = a.get('ratings').critics_rating
    b = b.get('ratings').critics_rating

演示http://jsfiddle.net/nikoshr/4Lzx1vw5/