用ember数据计算模型

时间:2015-05-28 22:06:05

标签: javascript ember.js ember-data ember-cli

我查看了Stackoverflow上的各种示例,但我似乎不明白get('length')是如何工作的。

我正在尝试获取辅助模型中的用户数量。我试图得到的方式('长度')可能有问题,但也许我还需要使用散列RSVP来获取当前模型和帮助模型的待办事项路线?

todo.js

    def when_to_run
     Time.now - 1.hour
    end

todo.js

export default Ember.Controller.extend({

    count: function() {
        var helper = this.get('helper');
        return helper.user.get('length');
    }.property('helper.user.[]'),

todo.hbs

export default DS.Model.extend({
    title: DS.attr('string'),
    isCompleted: DS.attr('boolean', {defaultValue: false}),

    list: DS.belongsTo('list', {async: true}),
    user: DS.belongsTo('user', {async: true}),

    comment: DS.hasMany('comment', {async: true}),
    helper: DS.hasMany('helper', {async: true}),
});

helper.js

<p>
                    <span class="badge pull-left">14 hands</span>
                    <span class="badge pull-left">{{todo.count}}</span>
                    </p>

todo.js

export default DS.Model.extend({
    user: DS.belongsTo('user', {async: true}),
    todo: DS.belongsTo('todo', {async: true}),
});

1 个答案:

答案 0 :(得分:1)

用户是单个对象,因此可能没有长度属性。使用异步属性,您需要使用promise表示法(以及getter)来访问它们。

helper.get('user').then(function(user){
    console.log(user.get('someProperties'));
})