相关信息: 恩伯1.11.1 Ember Data 1.0.0-beta.16 Ember CLI
我正在尝试为我的应用程序中的指标制作可重用的组件。在组件内,它使用所选选项运行查询。问题是,即使我看到网络请求正确启动,它也永远不会进入Ember对象。
这是我的组件代码:
import Ember from 'ember';
var arr = Ember.ArrayProxy.extend(Ember.PromiseProxyMixin);
export default Ember.Component.extend({
store: Ember.inject.service(),
type: null,
startTime: null,
finishTime: null,
interval: 0,
detail: false,
didInsertElement: function() {
// Ensure we have the latest metric types
this.set('metricTypes', arr.create({
promise: this.get('store').find('metric-type')
}));
},
data: function() {
var results = this.metricQuery();
return results;
}.property(),
/* NOT PROPERTIES */
metricQuery: function() {
return this.get('store')
.find('metric-query', { type: this.get('type'),
startTime: this.get('startTime'),
finishTime: this.get('finishTime'),
interval: this.get('interval'),
detail: this.get('detail') });
}
});
我看到metricTypes返回并正确设置为Ember对象。但是当metricQuery函数运行时,对象不会被设置。我在检查员中看到了该属性,但没有内容。但是,我确实看到网络请求正确地输出了正确的数据,并返回了侧载数据:
{"metricQuery":{
"id":"00000000-0000-0000-0000-000000000000",
"metricType":["c47707e1-a9d1-420a-87b6-4e65b77e6a58"],
"metricResult":"1035be30-cf6e-4425-ac58-d0e2fd2cf7b1"},
"metricResult":{... data... }
"metricType":[{.... data....}]}
但是,当我看到Ember检查员中的物体时,我看到空的内容。这是我第一次尝试使用商店从组件中获取数据,而且我不确定我做错了什么。
如何访问在metricQuery上查找返回的数据?
提前感谢您的帮助。
答案 0 :(得分:0)
正如Kingpin2k在上面的评论中所提到的那样,我的问题是,在期望收集时,来自API的API返回是一个单独的实体。我们更改了API返回值:
webbrowser.register('firefox', None, webbrowser.GenericBrowser('C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe'))
a=webbrowser.get('firefox')
a.open("www.google.com")
为:
metricQuery { ...data...}
一切都很完美。