灰烬数据:将store.find与查询参数一起使用时,CreateRecord无法更新模型

萨鲁斯

使用我的路线模型时,this.store.find('user')它将自动更新,并且模板显示使用创建的新记录createRecord因此,以下功能可以正常工作:

路线:

  model: function(){
    return this.store.find('user');
  }

模板:

{{#each user in model}}
      {{user.username}}<br>
{{/each}}

控制器代码:

  // Triggered when form submitted to create a new user
  var newUser = this.store.createRecord('user', {
    username: this.get('username').trim()
  });
  // new user shows up in template immediately after createRecord

如果我更改路线模型以使用find模板的查询参数版本,则在执行createRecord

路线:

  model: function(){
    // query params version of store.find
    return this.store.find('user', {enabledOnly: false, limit: 100});
  }

控制器代码:

  // Triggered when form submitted to create a new user
  var newUser = this.store.createRecord('user', {
    username: this.get('username').trim()
  });
  // new user does not show up in template at all

似乎这可能是一个错误,因为代码的唯一更改是从基本find('user')版本切换到具有查询参数的版本。这是炭烬数据的预期行为吗?createRecord使用find的查询参数版本时,为什么在调用之后模型不更新模板(即find('user', {})

我能够创建一个演示该问题的jsbin。

http://jsbin.com/kilaridoso/2/edit?html,js,输出

谢谢!

我正在使用以下版本:

DEBUG: -------------------------------
ember.debug.js:5197DEBUG: Ember             : 1.11.1
ember.debug.js:5197DEBUG: Ember Data        : 1.0.0-beta.16.1
ember.debug.js:5197DEBUG: jQuery            : 1.11.3
ember.debug.js:5197DEBUG: Ember Simple Auth : 0.8.0-beta.2
ember.debug.js:5197DEBUG: -------------------------------
萨鲁斯

认为这是我在Ember-Data的GitHUB页面上发布的错误。提供的答案是这是预期的行为。这是wecc的完整回复(谢谢!)

使用store.find(type,query)不会返回实时RecordArray,因此您描述的行为是正确的。

您应该可以改为使用store.filter(type,query,filter)(docs)。

store.find(type,query)不使用新创建的记录更新的原因是查询只是发送到服务器,ED无法知道新记录是否“匹配”该查询。有时查询可能是一个简单的过滤器,例如{isUnread:true},但也可能是类似{的东西,因为:'2015-05-10 10:51'}。另一方面,ED使用store.filter(type,query,filter),同时传递查询和过滤器回调函数,ED可以将查询传递到服务器,并在所有新记录上使用filter函数,以了解是否将其包括在是否直播RecordArray。

这是答案的链接:

https://github.com/emberjs/data/issues/3057

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

灰烬数据:在DS.Store.createRecord上刷新模型

来自分类Dev

灰烬数据:在DS.Store.createRecord上刷新模型

来自分类Dev

灰烬数据:this.store.find()范围的条目?

来自分类Dev

将foreach绑定与对象数组一起使用时更新剔除模型

来自分类Dev

灰烬数据store.find()在使用无效ID调用时创建空项目

来自分类Dev

灰烬数据store.find()在使用无效ID调用时创建空项目

来自分类Dev

灰烬数据-模型中的访问查询参数

来自分类Dev

灰烬数据嵌套模型

来自分类Dev

灰烬数据:CreateRecord和过渡

来自分类Dev

将Supertest与Mock-fs和Jest一起使用时无法发布数据

来自分类Dev

灰烬数据:“找不到模型”

来自分类Dev

灰烬数据:“找不到模型”

来自分类Dev

将PowerBI网关与Web数据源一起使用:查询参数

来自分类Dev

灰烬:将模型数据从嵌套路由记录到模板中

来自分类Dev

灰烬-无法使RESTAdapter加载数据

来自分类Dev

灰烬-无法使RESTAdapter加载数据

来自分类Dev

灰烬数据:将服务器查询添加到AJAX请求

来自分类Dev

灰烬数据:将服务器查询添加到AJAX请求

来自分类Dev

Rails 3查询:将“选择”与“订单”一起使用时出错

来自分类Dev

将moment.max与mongoDB查询的结果一起使用时出错

来自分类Dev

例外:尝试将 Enumerable.Any 方法与移动服务查询一起使用时

来自分类Dev

当与write()作为参数一起使用时,printf中的数据将被写入文件

来自分类Dev

将mget与redis-rs一起使用时参数数量错误

来自分类Dev

在将rsync与各种命令行参数一起使用时,“连接意外关闭”

来自分类Dev

将$ set与GoAngular一起使用时页面未更新

来自分类Dev

灰烬数据:错误时回滚createRecord

来自分类Dev

灰烬数据createRecord创建多个记录

来自分类Dev

灰烬数据:(最佳做法)find()的动态参数

来自分类Dev

TypeError:对象{...}没有方法'find'-当将mongoose与express一起使用时

Related 相关文章

  1. 1

    灰烬数据:在DS.Store.createRecord上刷新模型

  2. 2

    灰烬数据:在DS.Store.createRecord上刷新模型

  3. 3

    灰烬数据:this.store.find()范围的条目?

  4. 4

    将foreach绑定与对象数组一起使用时更新剔除模型

  5. 5

    灰烬数据store.find()在使用无效ID调用时创建空项目

  6. 6

    灰烬数据store.find()在使用无效ID调用时创建空项目

  7. 7

    灰烬数据-模型中的访问查询参数

  8. 8

    灰烬数据嵌套模型

  9. 9

    灰烬数据:CreateRecord和过渡

  10. 10

    将Supertest与Mock-fs和Jest一起使用时无法发布数据

  11. 11

    灰烬数据:“找不到模型”

  12. 12

    灰烬数据:“找不到模型”

  13. 13

    将PowerBI网关与Web数据源一起使用:查询参数

  14. 14

    灰烬:将模型数据从嵌套路由记录到模板中

  15. 15

    灰烬-无法使RESTAdapter加载数据

  16. 16

    灰烬-无法使RESTAdapter加载数据

  17. 17

    灰烬数据:将服务器查询添加到AJAX请求

  18. 18

    灰烬数据:将服务器查询添加到AJAX请求

  19. 19

    Rails 3查询:将“选择”与“订单”一起使用时出错

  20. 20

    将moment.max与mongoDB查询的结果一起使用时出错

  21. 21

    例外:尝试将 Enumerable.Any 方法与移动服务查询一起使用时

  22. 22

    当与write()作为参数一起使用时,printf中的数据将被写入文件

  23. 23

    将mget与redis-rs一起使用时参数数量错误

  24. 24

    在将rsync与各种命令行参数一起使用时,“连接意外关闭”

  25. 25

    将$ set与GoAngular一起使用时页面未更新

  26. 26

    灰烬数据:错误时回滚createRecord

  27. 27

    灰烬数据createRecord创建多个记录

  28. 28

    灰烬数据:(最佳做法)find()的动态参数

  29. 29

    TypeError:对象{...}没有方法'find'-当将mongoose与express一起使用时

热门标签

归档