通用对象,具体路线/模型/控制器/视图/模板

时间:2013-08-19 15:15:44

标签: ember.js ember-data

我的后台有一个对象列表,位于api/vehicles

{ 
    "vehicles" : [
        { 
            "id" : "car" ,
            "nr-doors" : 4,
            ...
        },
        {
            "id" : "ship",
            "nr-sails" : 3
            ...
        },
        {
            "id" : "train",
            "seats-per-wagon" : 30,
            ...
        }
    ]
}

所有车辆只有“id”字段,它们有几个特定的​​属性。每种类型只有一个车辆。 ID是固定的并且已知。我想有一个模板来显示/编辑汽车的属性。如何将特定ID(如“car”)与模型/模板/控制器/视图相关联?

我遇到的问题是,在ember和ember-data中,某个URL的ID指的是相同类型的对象,可以由相同的路径/视图/控制器/模型处理。在我的应用程序中,情况并非如此:每个ID必须在完全不同的控制器/模型/视图/模板中处理。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

  

每个ID必须在完全不同的控制器/模型/视图/模板中处理

你确定吗?这不仅仅是对于ember而是对任何模型 - 视图 - 控制器架构的彻底改变。

如果真的想要完成此任务,我建议如下:

首先创建您想要的模板和路线

App.Router.map(function() {
  this.route("car");
  this.route("ship");
  this.route("train");
});

App.CarRoute = Ember.Route.extend({
  model: function() {
    return App.Vehicle.find('car');
  }
});

App.CarController = Ember.ObjectController.extend({
  //add any custom fx related to cars here
});

// Now define handlebars template for car and if needed a CarView