在Ember Model中进行进一步处理之前,如何等待find方法完成

用户836968

我怎么能等到我的find方法完成了从后端加载模型的工作?模型加载后,我想获取其他数据并用该数据装饰我的电影模型。对外部api的请求是根据电影模型的属性(例如年份和标题)从中获取附加数据的。

App.Movie.adapter = Ember.Adapter.create({
  find: function(record, objectId) {
    return Ember.$.ajax({
      headers: {
        'X-Parse-Application-Id': '',
        'X-Parse-REST-API-Key': ''
      },
      type: 'GET',
      url: 'https://api.parse.com/1/classes/Movie' + '/' + objectId
    }).then(function(data) {
      record.load(objectId, data);
    });
  }
});

App.MoviesMovieRoute = Ember.Route.extend({
  model: function (movie) {
    return App.Movie.find(movie.movie_id);
  },

  afterModel: function(movie, transition) {
    // currently undefined, undefined
    console.log(movie.get('title'), movie.get('year'));
  }
});

App.MoviesMovieController = Ember.ObjectController.extend({
  contentObserver: function () {
    // fetch additional data from external api
  }.observes('content')
});

谢谢

劲派2k

对于ember模型,请使用fetch,它将返回promise,并且ember将等到解析该模型后再执行下一个模型。

return App.Movie.fetch(movie.movie_id);

find会建立一个虚拟记录并立即返回记录(并在数据可用时填充它),而fetch会建立记录,一个promise并返回promise,当填充记录时将解析为该记录。

他们都将使用适配器的find方法。

App.MoviesMovieRoute = Ember.Route.extend({
  model: function (movie) {
    return App.Movie.find(movie.movie_id);
  },

  afterModel: function(movie, transition) {
    // currently undefined, undefined
    console.log(movie.get('title'), movie.get('year'));
  },

  serialize: function(model){
    return { movie_id: model.get('whateverfieldhastheid')};
  }
});

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我是否通过了代码以从服务中进行进一步处理?

来自分类Dev

如何使`xargs`忽略孩子的出口并继续进行进一步处理

来自分类Dev

如何删除与熊猫合并的Excel单元格以进行进一步处理?

来自分类Dev

如何使`xargs`忽略孩子的出口并继续进行进一步处理

来自分类Dev

如何存储MySQLi bind_result值以进行进一步处理?

来自分类Dev

重命名sed以允许在替换之前进行进一步的匹配

来自分类Dev

检索列表中的最后一个节点以进行进一步处理

来自分类Dev

如何从Matlab的回调函数中获取数据以进行进一步处理?

来自分类Dev

如何查找* .css文件进行进一步处理,但忽略所有* .min.css文件?

来自分类Dev

如何从ldapsearch结果创建电子邮件地址列表以进行进一步处理?

来自分类Dev

如何将关联数组从 PHP 传递到 HTML 以进行进一步处理

来自分类Dev

如何捕获文件头,然后对原始文件进行进一步的文本处理?

来自分类Dev

选择图像上的圆圈区域以进行进一步处理

来自分类Dev

Clojure中的“劣等”过程-重定向异步输出以进行进一步处理

来自分类Dev

将文件发送到应用程序以进行进一步处理

来自分类Dev

在JavaScript中拆分字符串以进行进一步处理

来自分类Dev

在特定位置获取参数以进行进一步的管道处理

来自分类Dev

无需下载视频即可捕获 YouTube 视频以进行进一步处理

来自分类Dev

导出Power BI报表以进行进一步编辑的方法

来自分类Dev

导出Power BI报表以进行进一步编辑的方法

来自分类Dev

Codeigniter模型:如何使用查询中的值进行进一步的计算?

来自分类Dev

Ember数据:如何在Ember-Objects中进行AJAX调用(没有方法'find')

来自分类Dev

如何使用Ember CLI在Ember中进行依赖项注入?

来自分类Dev

如何使用Ember CLI在Ember中进行依赖项注入?

来自分类Dev

抛出异常并允许在方法中进一步进行

来自分类Dev

从 CSV 读取特定列并转换为双精度以在 Java 中进行进一步计算

来自分类Dev

如何在执行主成分回归后提取成分以在R Caret包中进行进一步分析

来自分类Dev

逐行读取文件并将每行的内容存储在列表中以进行进一步处理

来自分类Dev

如何将缩略图/屏幕快照的序列从ffmpeg传递到nodejs进行进一步处理?

Related 相关文章

  1. 1

    我是否通过了代码以从服务中进行进一步处理?

  2. 2

    如何使`xargs`忽略孩子的出口并继续进行进一步处理

  3. 3

    如何删除与熊猫合并的Excel单元格以进行进一步处理?

  4. 4

    如何使`xargs`忽略孩子的出口并继续进行进一步处理

  5. 5

    如何存储MySQLi bind_result值以进行进一步处理?

  6. 6

    重命名sed以允许在替换之前进行进一步的匹配

  7. 7

    检索列表中的最后一个节点以进行进一步处理

  8. 8

    如何从Matlab的回调函数中获取数据以进行进一步处理?

  9. 9

    如何查找* .css文件进行进一步处理,但忽略所有* .min.css文件?

  10. 10

    如何从ldapsearch结果创建电子邮件地址列表以进行进一步处理?

  11. 11

    如何将关联数组从 PHP 传递到 HTML 以进行进一步处理

  12. 12

    如何捕获文件头,然后对原始文件进行进一步的文本处理?

  13. 13

    选择图像上的圆圈区域以进行进一步处理

  14. 14

    Clojure中的“劣等”过程-重定向异步输出以进行进一步处理

  15. 15

    将文件发送到应用程序以进行进一步处理

  16. 16

    在JavaScript中拆分字符串以进行进一步处理

  17. 17

    在特定位置获取参数以进行进一步的管道处理

  18. 18

    无需下载视频即可捕获 YouTube 视频以进行进一步处理

  19. 19

    导出Power BI报表以进行进一步编辑的方法

  20. 20

    导出Power BI报表以进行进一步编辑的方法

  21. 21

    Codeigniter模型:如何使用查询中的值进行进一步的计算?

  22. 22

    Ember数据:如何在Ember-Objects中进行AJAX调用(没有方法'find')

  23. 23

    如何使用Ember CLI在Ember中进行依赖项注入?

  24. 24

    如何使用Ember CLI在Ember中进行依赖项注入?

  25. 25

    抛出异常并允许在方法中进一步进行

  26. 26

    从 CSV 读取特定列并转换为双精度以在 Java 中进行进一步计算

  27. 27

    如何在执行主成分回归后提取成分以在R Caret包中进行进一步分析

  28. 28

    逐行读取文件并将每行的内容存储在列表中以进行进一步处理

  29. 29

    如何将缩略图/屏幕快照的序列从ffmpeg传递到nodejs进行进一步处理?

热门标签

归档