首先,我建议您开始将 Rails 概念与 Ember 分开。MVC 在 Ember 和 Rails 中意味着不同的东西,作为 Rails 开发人员,我也尝试寻找类比,有时会感到困惑(我正在为 Rails 开发人员编写一个简单的社区指南到 Ember https://github.com/abuiles/ ember-rails-style-guide )
在 Ember 中,保留这些“语义方法”的方法是使用 Routes 完成的。
在您的情况下,您将拥有 OrdersIndexRoute、OrdersNewRoute、OrdersEditRoute(将这些中的每一个视为 Rails 中的“操作”),其中
OrdersIndexRoute = 索引操作,您需要设置要列出的所有订单模型。它看起来像
App.OrdersIndexRoute = Ember.Route.Extend({
model: function(){
return Order.all; // If you are using ember-data this would be different, just supposing Orders.all returns all your orders models.
}
});
OrdersNewRoute = 新操作,您需要设置一个new
对象,该对象将绑定到表单,然后提交到您的服务器。
App.OrdersNewRoute = Ember.Route.Extend({
model: function(params){
return Order.new() // returns a new instance of your model
},
actions: {
// this means that you would have something in your template like <button {{action this}}>...
save: function(model){
model.save()
}
}
});
OrdersEditRoute = 编辑操作,model
这里就是您要编辑的操作。
App.OrdersEditRoute = Ember.Route.Extend({
model: function(params){
return Order.find(params.id)
},
actions: {
save: function(model){
model.save()
}
}
});
当您有这种疑问时,请随意跳入 IRC 中的#emberjs,那里有很多聪明而乐于助人的傻瓜,愿意在需要时为您提供帮助。