Emberjs Data 稍后如何加载 hasMany-Data

2024-07-03

我有以下 Emberjs 数据模型:

App.File = DS.Model.extend({
  like: DS.attr('boolean'),
  comments: DS.hasMany('App.Comment')
});

App.Comment = DS.Model.extend({
  file: DS.belongsTo('App.File'),
  comment: DS.attr('string')
});

并预加载它:

 App.store.load(App.File, {id: 1, like: false});

现在我想,如果我收到这样的评论:

var f = App.store.find(App.File, 1);
var c = f.get("comments");

var c 是一个空的 EmberArray 并且请求被发送到服务器。但我没有收到请求?为什么以及如何我必须这样做?我真的不想预加载评论。

此外,如果我添加注释,还同时更改文件:

f.get("comments").createRecord({comment: "test"});
f.set("like", true);
App.store.commit();

两个请求发送到服务器。但是如果我返回以下 JSON(对于文件):

{ "id": 1, like: true }

我的第一个可见评论再次消失。为什么?我该怎么办?

感谢您的帮助!


关于你问题的第一部分:您应该在文件数据中填充评论 ID:

App.store.load(App.File, {id: 1, like: false, comments: [1, 2, 3]});

所以评论会在需要的时候延迟加载。

关于第二部分:您当然不会序列化服务器回复中的评论 ID,因此当您描述空评论列表时,评论会被重置。

您至少应该返回之前显示的评论 ID...这两个问题是相关的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Emberjs Data 稍后如何加载 hasMany-Data 的相关文章

  • Ember Data 中的类继承有很多关联

    我正在尝试让 Ember Data 使用与类继承的 hasMany 关联 Ember 代码示例 var Person DS Model extend name DS attr string animals DS hasMany Animal
  • 使用 ember.js 无限滚动(延迟加载)

    我有一个视图 其中可能有大量项目供用户滚动 我想实现无限滚动以实现内容的渐进加载 看起来有些人已经做了分页 https stackoverflow com questions 8778259 ember js rendering large
  • Ember CLI 中的把手助手语法

    在这篇文章中 使用 Handlebars js 迭代基本的 for 循环 https stackoverflow com questions 11924452 handlebar js iterating over for basic lo
  • Ember 集成测试在访问路线后挂起

    我正在尝试做一个简单的集成测试 我从 ember cli 网站上的集成示例开始 现在 当我在浏览器 localhost 4200 tests 中测试时 以下情况会路由到我期望的位置 但随后它只是挂起并且永远不会成功或失败 import Em
  • 使用 Node.js 的前端 javascript 框架 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用 ActiveModel::Serializers 包含两个父 json 数组

    我正在尝试发送如下所示的前端应用程序 json facilities id 5 name happy days ranch location address 1424 Pastoral Lane zipcode 25245 instruct
  • 如何使用 Ember.run.debounce 实现正确的关闭

    我尝试使用 Ember run debounce 仅在有许多子视图触发保存时触发父视图或控制器上的保存操作 问题似乎是闭包 匿名函数 但我找不到在这种情况下在 Ember 中实现去抖的最佳方法的任何示例 这是一个概述该问题的 jsbin 任
  • 为车把/余烬定义模板内的数组?

    我在 ember 应用程序中有一个车把模板 它接受一个数组 我目前像这样声明数组 模板 Gd radio input content radioContent value blue JavaScript App IndexControlle
  • emberjs:在应用程序初始化()之后添加路由

    我在使用 emberjs 构建基于路由器的应用程序时遇到了以下问题 我的应用程序的结构简化如下 var App Em Application create App ApplicationController Em Controller ex
  • 如何使用 Ember CLI 在两个组件之间共享模板?

    我有两个组件 SpecialButtonComponent and SpecialButtonDerivativeComponent The SpecialButton组件自动使用位于以下位置的模板 app templates compon
  • 在路由之间传递参数

    Ember 中将参数从一个路由发送到另一个路由的 适当 方式是什么 例如 我有两条这样定义的路线 this resource activities path activities on date function this route ne
  • 在 ember-cli 中安装 Foundation 5

    我对 ember 相当陌生 对构建工具也很陌生 我目前正在使用通常的基础安装以及基础 cli 和指南针来编译我的 css 这有点痛苦 并且对于团队工作来说非常糟糕 我认为用 Bower 安装文件并使用会更好ember cli compass
  • Ember 数据 - 动态段和查询参数在一起?

    使用 Ember 1 8 0 和 Ember Data 1 0 0 beta 11 Ember 商店的findQuery 函数似乎无法处理动态段 或者至少我无法在任何地方的文档中找到它 例如 给定以下路线 MyApp Router map
  • 如何使用 emberfire 在 ember.js 2.0.0 中查询 firebase 数据库中名为 equalTo xyz 的所有项目?

    我是 ember js 和 firebase 的新手 我一直在尝试制作一些需要我在数据库中查询与定义值匹配的键的东西 根据指南 emberjs com http guides emberjs com v2 1 0 models findin
  • ember.js 如果没有提供则显示默认嵌套路由

    在我的 ember 应用程序 1 0 0 生产版本 中 我的 URL 结构如下 item item specific item name defined in routes 路由器映射看起来有点像这样 App Router map func
  • 从组件刷新/重新加载 ember 路由

    我有一个组件 它实际上是一个模式对话框 当我完成该对话框并按 确定 按钮时 我想留在打开该对话框的停留页面上 这并不难 但问题是该对话框更改了数据 我通过 REST 调用获取数据 因此我需要刷新已经所在的路线以反映数据更改 因为我是从组件中
  • 我希望根据当前路线将多个变量切换为 true 或 false

    我希望根据当前路由将多个变量切换为 true 或 false 控制器在页面加载时检查该路由 VpcYeoman SuperTableController Ember ArrayController extend routedToLocati
  • 在 emberjs 中绑定子视图和集合

    我正在尝试渲染视图Team里面一个 outlet This Team视图由一个简单的Person视图 团队领导者 以及集合Person意见 团队成员 插座是通过调用设置的connectOutlet 在应用程序控制器上 虽然Person子视图
  • Ember 无法将路由操作传递给组件

    我有一个组件需要接收我在路线上放置的操作 因为它的工作是刷新模型的一部分 显然我可以从按钮调用路由操作 但我无法将相同的操作传递给组件 路由器 export default Ember Route extend actions doSome
  • 在 ember.js 中定义多分段 catch all 路由

    我正在使用 Ember js 我想创建一个捕获所有路由 以便在用户导航到与资源不匹配的 URL 时将其发送回应用程序的根目录 我正在使用历史API 我已经这样实现了 App Router map function this resource

随机推荐