javascript - Ember 与数据 - 路线模型无法一致工作

标签 javascript ember.js ember-data

我正在使用 FixtureAdapter 运行 Ember 1.0 和 Ember Data 1.0 Canary。我的其中一条路线将在我第一次输入时正确加载其模型,但随后的任何时间数据都将为空。这是该路线:

App.PlannerRoute = App.AuthenticatedRoute.extend({
  model: function() {
    var snapshotId,
        scenarioController = this.controllerFor('scenario'),
        snapshot = scenarioController.get('selectedSnapshot'),
        scenario = scenarioController.get('content');
    if ( !snapshot ) {
      if ( !scenario )
        this.transitionTo('scenarios');
      else
        this.transitionTo('scenario', scenario);
    }
    snapshotId = snapshot.get('id');
    return Ember.Object.create({
      regions: this.store.find('region', { snapshot: snapshotId }),
      networks: this.store.find('networks', { snapshot: snapshotId }),
      terminals: this.store.find('terminals', { snapshot: snapshotId })
    });
  }
});

如果我在上面模型方法的 return 语句处设置断点,我发现对 this.store.find 的调用总是检索到正确的数据。但是,数据仅在第一次转换到路由时填充到路由的 Controller / View /模板/等中。

感谢您在追查问题方面的任何帮助。我该如何解决这个问题?

最佳答案

您是否尝试过类似的操作:

...
snapshotId = snapshot.get('id');
var regions = this.store.find('region', { snapshot: snapshotId }),
    networks = this.store.find('networks', { snapshot: snapshotId }),
    terminals = this.store.find('terminals', { snapshot: snapshotId });

return Ember.RSVP.all([ regions, networks, terminals ]).then(function(results){
  return Ember.Object.create({
    regions: results[0],
    networks: results[1],
    terminals: results[2]
  });
});

关于javascript - Ember 与数据 - 路线模型无法一致工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19057662/

相关文章:

javascript RegEx 仅检测空格\s

ember.js - findAll() 与 findQuery() 中的删除记录

html - Ember View 高度

javascript - 如何将事件绑定(bind)到 ember.js 中动态创建的实例

node.js - 当 contentType ="application/json"时,Azure + Nodejs 400 错误请求

javascript - Ember 计算属性不适用于服务器数据

javascript - jQuery加载动画hide()、show()错误

javascript - 深度比较(Eloquent Javascript 第 4 章): code fails a test case

Javascript函数定义

ember.js - DS.FixtureAdapter 是否支持侧载?