2016-07-07 59 views
5

我有一个填充RSVP散列内通过.store.query()方法的模型属性路线:灰烬model.get()没有返回值,或结合到模板正确

model(params, transition) { 
    return Ember.RSVP.hash({ 
     myData: this.store.query('table-datum', parameters) 
    }); 
} 

这会返回一个承诺,并似乎得到根据Ember检查员的数据进入我的商店,我看到正确的行数,并且它们都具有填充数据的属性。

我然后具有带有each块我的主视图模板内的简单的组件模板以显示输出:

{{#each data as |result|}} 
     <tr> 
      <td>{{result.prop1}}</td> 
      <td>{{result.prop2}}</td> 
     </tr> 
    {{/each}} 

我传递属性来我的组件是这样的:

 <div id="tableContainer"> 
      {{result-table data=model.myData}} 
     </div> 

但由于某种原因模板绑定了正确的行数,但没有正确访问该类的prop1prop2位(所以我只得到20个左右的空白表行)

如果我尝试只输出{{result}}在我的模板,它看起来像这样:

<[email protected]:table-datum::ember574:1> 

我敢肯定的数据是有什么地方只是好像我的模板未访问的一些属性原因。

任何有关在哪里寻找这个的想法?

编辑:记录的result物体看起来差不多吧,但不完全:

enter image description here

扩大内部模型显示了一些数据,但也表示“空对象”,这似乎有点错了我!

enter image description here

编辑:如果它帮助我有一个控制器功能,它得到了model.myData并在其上运行,这给了我,我希望得到的结果:

getMax() { 
    let max = _.max(this.get('model.myData'),'aField').aField; 
    console.log(max); // logs 41 as I expect 
    return max; 
} 
+0

如果记录结果,你会在控制台中得到什么? '{{log result}}' – jeffdill2

+0

我看到里面有值的Ember类,但它也奇怪地说在几个地方有'Empty object',会更新图像 – dougajmcdonald

+0

'myData:this。 store.query('table-datum',parameters)'是无效的,是你真正的代码吗?返回属性/计算属性中的承诺是非常不鼓励的,你有任何可能将查询移动到路由的机会? –

回答

0

这是你中做什么你的路线模型?

model() { 
    return Ember.RSVP.hash({ 
     myData: this.store.query('table-datum', parameters) 
    }).then(function(results) { 
     return results; 
    }).catch(function(error) { 
     throw error; 
    }); 
}, 
setupController(controller, model) { 
    this._super(...arguments); 
    Ember.set(controller, 'myData', model.myData); 
} 

然后在模板中我会访问myData。

+1

你的例子中的'then'和'catch'例子是多余的 –

+0

他不需要在模板中访问'model.myData'吗? – 2016-07-08 03:45:04

+0

@Vis我正在做你没有.then/catch写的东西,因为我明白他们是多余的,正如@DanMcClain所说。 此外,我没有明确地将控制器属性设置为model.myData,因为我所有其他的哈希属性都可以正常工作并且可以访问(我使用'findAll()') – dougajmcdonald