javascript - Ember 嵌套路由和 Promise

标签 javascript jquery ember.js promise

我有一个像这样定义的 jquery ajax 调用

var fetchMessages = function(){$.getJSON(<some url>).then(function(data){ return data; }};

var messages = fecthMessages();

我的路线是这样设置的

App.Router.map(function() {

    this.resource('messages', function() {
      this.resource('message', { path: ':message_id' });                       
    });                                                                        
  });

我使用 promise messages在我的 route 这样

App.MessagesRoute = Ember.Route.extend({
    model : function(){
        return messages;
    }
});

上述路线工作正常。

接下来我有一个嵌套路线,如下所示。然而,当我直接尝试访问 #/messages/<id of the message> 时,会出错。 。加载中#/messages随后访问#/messages/<id of message>工作正常。

App.MessageRoute = Ember.Route.extend({
    model: function(params) {
      message = messages.findBy("id", params.message_id);
      return message;

    }
  });

那么我如何处理嵌套路由中的 promise ?

最佳答案

So how do I handle the promises in nested routes?

显然Ember handles these for you .

This however errors out when I directly try to visit #/messages/:

App.MessageRoute = Ember.Route.extend({
    model: function(params) {
      message = messages.findBy("id", params.message_id);
      return message;

    }
  });

messages 仍然是一个 promise ,而不是一个数组;它没有 findBy 方法。相反,使用

return messsages.then(function(m) {
  return m.findBy("id", params.message_id);
});

关于javascript - Ember 嵌套路由和 Promise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25767885/

相关文章:

Javascript 与日期

javascript - AngularJS 绑定(bind)到嵌套模型属性

javascript - 如何获得绑定(bind)到 onclick 属性的函数?

php - 解决 PHP 中缺少 "Authorization"请求 header 的问题

javascript - 使用 jQuery 聚焦加载元素

php - 保存帖子元并重复使用它们

asynchronous - 没有 Ember 数据的 AJAX promise

javascript - 使用 Javascript 在 <a> 标签中 append 文本

javascript - 路线模型中的 Ember 错误

ember.js - 即使 Ember.js 模型 Hook 未加载所有 promise ,如何继续?