javascript - 在 Controller emberjs 中获取模型

标签 javascript ember.js ember-data

我需要获取从 JSON API 返回的所有对象的总价。

我的想法是创建一个 Controller 并在其上设置一个属性。然后抓取每个对象上的模型循环,并将其添加到对象总价格的预定义属性中。像这样的事情:

export default Ember.Controller.extend({
    orderTotal: 0,

    getOrderTotal: function(){
        var model = this.get('model');

        model.forEach(function(c){
            var order_total = this.get('orderTotal') * c.total_price;
            this.set('orderTotal', order_total)
        });
    }
});

问题是我无法获取模型。如何访问 Controller 内的模型?

最佳答案

模型可能是异步加载的,因此您必须使用 .then(...) 来等待模型加载。

this.get('model').then(function(data) { ... create sum using `data` });

虽然我会使用计算属性来创建可能会改变的东西的总和:

allPrices: Ember.computed.mapBy('model', 'price'),
totalPrice: Ember.computed.sum('allPrices')

http://emberjs.jsbin.com/wiwiqulozi/1/

关于javascript - 在 Controller emberjs 中获取模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30628995/

相关文章:

javascript - 如何从其他组件调用Ember组件?

javascript - 如何防止 ember-data 向服务器发送请求?

javascript - 如何对 Ember.js 中的 hasMany 项目进行排序

Javascript 绑定(bind)错误?

php - JS jquery 和 ajax 问题

javascript - 仅验证结尾字母

javascript - Moment js 格式化日期和时区

javascript - Unicoin 挖矿和 Canvas 点击

javascript - Ember 上下文误解

ember.js - Ember Data 侧载属性被放置在模型上