当新模型添加到其中时,Ember模型未更新hasMany关系

时间:2014-04-02 11:44:53

标签: ember.js ember-data

模型 用户有很多公司(一对多的关系)。 Ember模特:

// User model
App.User = DS.Model.extend({
    companies: DS.hasMany("company", {async: true})
});

App.Company = DS.Model.extend({
    user: DS.belongsTo("user")
});

问题 当我创建新的公司模型,定义其用户属性并保存()时,用户的公司属性在刷新页面之前不会更新。例如:

var user = this.get("controllers.application").get("model"); // Get user
company.set('user', user); // Set user to current user  
company.save(); // Call POST HTTP verb to update db model

然而,作为解决方案,我可以明确地将新公司模型推送到公司的用户列表中,以便立即查看新公司。我执行此操作后不会调用save()。但这一步是必要的吗?

user.get("companies").pushObject(company); // Add company to users list of companies

应用详情
     - 使用Ember RESTAdapter
     - 使用Flask-SQLAlchemy的后端Flask服务器      - 使用Flask-Restless

1 个答案:

答案 0 :(得分:0)

问题是我分配给这条路线的模型。我以前将登录的用户指定为模型,并访问他们的公司列表,如:

App.MyCompaniesRoute = Ember.Route.extend({
    model: function(){
        return this.store.find("user", 1); // ID is 1 for example
    }
});

我应该为这条路线设置模型,因为商店中与当前登录用户具有相同用户的所有公司,例如:

model: function(){
    this.store.filter("company", function(company){
        return company.get("user") == currentUser; // Current user model
    });
}

谢谢!