【问题标题】:ember model.get('elements.content.content') in setupController?setupController 中的余烬 model.get('elements.content.content')?
【发布时间】:2016-02-10 23:51:51
【问题描述】:

我正在尝试更新 ember 1.7 应用。在路由的 setupController() 中

this.controllerFor('editor/object-list').set('model', model.get('elements.content.content'));

被调用,并且 element.content.content 似乎返回了一个模型数组。在 1.10 中它返回 undefined。

elements 和elements.content 返回<DS.PromiseManyArray:ember748><DS.ManyArray:ember749>,但是1.10 中的elements.content 没有content 属性。在 1.7 中确实如此。相反,1.10 具有 canonicalState/currentState 属性,这些属性似乎包含所需的数据。我不明白为什么要这样做。有人有想法吗?

【问题讨论】:

  • Ember Data 有哪些版本?
  • 1.7 版本中的 1.0.0-beta.10 和 1.10 版本中的 1.0.0-beta.15
  • 在此处的 Ember Data 1.0.0-beta.14 发布帖子中emberjs.com/blog/2014/12/25/… 下面的 cmets 之一提到了对“内容”的更改。你能给我们更多关于什么是元素的信息吗? .set('model', model.get('elements')) 有效吗?
  • .model.get('elements') 确实有效,但是某些元素中的属性未定义。我认为它们是由computed.alias 设置的。对于我找到的元素:Ember.computed.alias('controller.editorObjectList'),这是一个 ArrayController

标签: ember.js


【解决方案1】:

看来elements是异步关系,所以你应该解决promise:

model.get('elements').then(m => this.controllerFor('editor/object-list').set('model',m));

【讨论】:

    【解决方案2】:

    在 afterModel 中返​​回一个承诺对我有用:

    afterModel: function(sheet) {
        var elements = sheet.get('elements');
        var images = elements.map(function(e){ return e.get('image'); });
    
        return Ember.RSVP.all(images);
    },
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多