在两条路由之间共享 ember 数据模型



如果我...

  1. 定义了两个资源:

    this.resource('activity');
    this.resource('notes');
    
  2. 并定义了一个模型:

    App.Note = DS.Model.extend({
    });
    

如何指定每个端点返回应存储为 Notes 的资源列表,而不是将一组资源存储为 Activity 而另一组存储为 Notes?

您可以在

路由的model钩中指定此项。您需要执行以下操作:

App.NotesRoute = Ember.Route.extend({
   model: function() {
      return this.store.findAll('note');
   }
});
App.ActivityRoute = Ember.Route.extend({
   model: function() {
      return this.store.findAll('note');
   }
});

Ember 使用以下任一方式共享数据:

  1. 余烬存储,即服务
  2. 使用控制器相互通信(通信数据)

见图

+----------------------------------------------------------------+
|                                                                |
|                                                                |
|                                                                |
|                                                                |
|    Ember Route                       Ember Route               |
|          +                                 +                   |
|          |                                 |                   |
|          v                                 v                   |
|    Ember Controller   <----------->  Ember Controller          |
|          +                                 +                   |
|          |                                 |                   |
|          v                                 v                   |
|    Ember Component(s)                Ember Component(s)        |
|                                                                |
|                                                                |
|                                                                |
+----------------------------------------------------------------+

最新更新