路线及其子路线中如何具有两种不同的模型?

马克·弗朗索瓦

我正在使用Ember开发一个简单的网络聊天系统。

我有一条/chatrooms列出了几个聊天室的路线,然后我也要/chatrooms/:chatroom_id显示带有消息的实际聊天室。

第二条路线在第一条路线之内,如下所示:

this.resource('chatrooms', function() {
  this.route('show', {
    path: ':chatroom_id'
  });
});

当我访问时/chatrooms,将调用服务器(/api/chatrooms),如预期那样,将返回并显示房间列表。

当我单击一个房间时,应用程序将转换为/chatrooms/id,但是/api/chatrooms/id即使我尝试定义模型,也不会进行调用来检索消息(位于)。

我与用户有类似的情况。检索用户列表,然后显示。单击名称后,将显示配置文件。没有第二个电话,但这没关系,因为Ember已经知道有关用户的所有信息。

在我当前的情况下,第一次返回列表时,它包括除消息外的所有信息。我相信否则会太多(10个聊天室* 100条最后一条消息=每个请求中JSON中的1000个元素)。因此,我只想在选择聊天室时才调用服务器的消息。

您知道该怎么做,或者也许我一开始做错了什么?

更新

来自的模板代码 app/templates/chatrooms.hbs

<h1>Chatrooms</h1>
<ul class="sub-menu nobullet flex mas">
    {{#each chatroom in model}}
        <li class="mrs">{{link-to chatroom.name "chatrooms.show" chatroom class="pat"}}</li>
    {{/each}}
</ul>
{{outlet}}

在这种情况下,模型是一系列聊天室。

我的路线:

app / routes / chatrooms.js

export default Ember.Route.extend({
  model: function() {
    return this.store.find('chatroom');
  }
});

app / routes / chatrooms / show.js

export default Ember.Route.extend({
  model: function(params) {
    return this.store.get('chatroom', params.chatroom_id);
  },
  actions: {
    send: function() {
      ...
    }
  }
});
马克·弗朗索瓦

最后,我为聊天室的JSON响应添加了一个links属性。当必须显示聊天室的内容时,将使用链接并检索消息。它只需要两个请求,并且不需要从所有聊天室预加载所有消息,也不需要为每个消息都发出请求。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

路线及其子路线中如何具有两种不同的模型?

来自分类Dev

两种不同的模型在django管理页面中具有相同的名称

来自分类Dev

在 C# 中,如何使用具有两种不同类型的泛型?

来自分类Dev

如何在 Django 中创建具有两种不同状态的过滤器

来自分类Dev

如何使子路线在角度嵌套的路线中占据整页

来自分类Dev

Dagger2 如何@Provide 一种具有两种不同实现的类型

来自分类Dev

在Elasticsearch中搜索具有不同映射的两种不同类型

来自分类Dev

如何将具有两种不同数据类型的JSON数组解析为Golang中的结构

来自分类Dev

如何在Android Studio中设置gradle以提供两种具有不同最低SDK版本的版本?

来自分类Dev

如何将这两种路线结合起来?

来自分类Dev

具有两种不同用户类型的Laravel

来自分类Dev

具有两种不同颜色的布局

来自分类Dev

同时具有两种不同的传单弹出样式

来自分类Dev

在laravel中将路线及其子路线显示为列表

来自分类Dev

Laravel特定路线及其子路线的全球范围

来自分类Dev

在laravel中将路线及其子路线显示为列表

来自分类Dev

如何绘制具有两种不同尺寸美学的气泡图

来自分类Dev

如何绘制具有两种不同尺寸美学的气泡图

来自分类Dev

如何创建具有两种不同颜色的自定义圆圈式UIView?

来自分类Dev

如何创建具有不同注释的两种映射方法

来自分类Dev

C#中具有两种不同数据类型的二维数组

来自分类Dev

在翻新2.0中无法解析具有两种不同数据类型的json

来自分类Dev

Haskell中具有两种不同变量类型的重载函数

来自分类Dev

在MVC控制器中,相同的string.replace()具有两种不同的含义

来自分类Dev

角2中的子路线

来自分类Dev

角度2:以两种不同的方式使用组件:作为路线的目标并通过选择器<selector-my-component>

来自分类Dev

角度2:以两种不同的方式使用组件:作为路线的目标并通过选择器<selector-my-component>

来自分类Dev

在emberjs中将父路线的模型传递给子路线

来自分类Dev

具有不同地区的锂路线

Related 相关文章

  1. 1

    路线及其子路线中如何具有两种不同的模型?

  2. 2

    两种不同的模型在django管理页面中具有相同的名称

  3. 3

    在 C# 中,如何使用具有两种不同类型的泛型?

  4. 4

    如何在 Django 中创建具有两种不同状态的过滤器

  5. 5

    如何使子路线在角度嵌套的路线中占据整页

  6. 6

    Dagger2 如何@Provide 一种具有两种不同实现的类型

  7. 7

    在Elasticsearch中搜索具有不同映射的两种不同类型

  8. 8

    如何将具有两种不同数据类型的JSON数组解析为Golang中的结构

  9. 9

    如何在Android Studio中设置gradle以提供两种具有不同最低SDK版本的版本?

  10. 10

    如何将这两种路线结合起来?

  11. 11

    具有两种不同用户类型的Laravel

  12. 12

    具有两种不同颜色的布局

  13. 13

    同时具有两种不同的传单弹出样式

  14. 14

    在laravel中将路线及其子路线显示为列表

  15. 15

    Laravel特定路线及其子路线的全球范围

  16. 16

    在laravel中将路线及其子路线显示为列表

  17. 17

    如何绘制具有两种不同尺寸美学的气泡图

  18. 18

    如何绘制具有两种不同尺寸美学的气泡图

  19. 19

    如何创建具有两种不同颜色的自定义圆圈式UIView?

  20. 20

    如何创建具有不同注释的两种映射方法

  21. 21

    C#中具有两种不同数据类型的二维数组

  22. 22

    在翻新2.0中无法解析具有两种不同数据类型的json

  23. 23

    Haskell中具有两种不同变量类型的重载函数

  24. 24

    在MVC控制器中,相同的string.replace()具有两种不同的含义

  25. 25

    角2中的子路线

  26. 26

    角度2:以两种不同的方式使用组件:作为路线的目标并通过选择器<selector-my-component>

  27. 27

    角度2:以两种不同的方式使用组件:作为路线的目标并通过选择器<selector-my-component>

  28. 28

    在emberjs中将父路线的模型传递给子路线

  29. 29

    具有不同地区的锂路线

热门标签

归档