Ember.js 异步记录不会自动提取
我试图通过Firebase支持的ember应用程序显示一些CI信息。如果我做了一个这个。商店。找到‘计划’;它获取并显示所需项目的计划,但不会像我所希望的那样自动异步获取计划。我不太清楚我做错了什么Ember.js 异步记录不会自动提取,ember.js,ember-data,emberfire,Ember.js,Ember Data,Emberfire,我试图通过Firebase支持的ember应用程序显示一些CI信息。如果我做了一个这个。商店。找到‘计划’;它获取并显示所需项目的计划,但不会像我所希望的那样自动异步获取计划。我不太清楚我做错了什么 DEBUG: ------------------------------- DEBUG: Ember : 1.9.0-beta.1+canary.8105a1bb DEBUG: Ember Data : 1.0.0-beta.11+canary.d96c747da5 DEBUG: Em
DEBUG: -------------------------------
DEBUG: Ember : 1.9.0-beta.1+canary.8105a1bb
DEBUG: Ember Data : 1.0.0-beta.11+canary.d96c747da5
DEBUG: EmberFire : 1.2.7
DEBUG: Handlebars : 1.3.0
DEBUG: jQuery : 1.10.2
DEBUG: -------------------------------
App = Ember.Application.create();
App.Router.map(function() {
// put your routes here
});
App.IndexRoute = Ember.Route.extend({
model: function() {
return this.store.find('project');
}
});
App.ApplicationAdapter = DS.FirebaseAdapter.extend({
firebase: new Firebase('https://my.firebaseio.com/api-data/')
});
App.Project = DS.Model.extend({
name: DS.attr('string'),
plans: DS.hasMany('plan', { async: true })
});
App.Plan = DS.Model.extend({
project: DS.belongsTo('project', { async: true }),
shortName: DS.attr('string'),
shortKey: DS.attr('string'),
type: DS.attr('string'),
enabled: DS.attr('boolean'),
name: DS.attr('string'),
description: DS.attr('string'),
isBuilding: DS.attr('boolean'),
averageBuildTimeInSeconds: DS.attr('number')
});
我的模板
<script type="text/x-handlebars" data-template-name="index">
<ul>
{{#each project in model}}
<li>
<h3>{{project.name}}</h3>
<ul>
{{#each plan in project.plans}}
<li>{{plan.name}}</li>
{{else}}
<li>no plans</li>
{{/each}}
</ul>
</li>
{{/each}}
</ul>
</script>
现在正在添加计划数组。我现在只需要弄清楚这在firebase上是如何工作的。在初始种子数据之后使用firebase时,我获取了每个模型类型,并在所有实例上调用了save。这导致为异步数据阵列正确填充Firebase。这一点如下: /计划 /计划
当您尝试访问Ember数据时,它会执行此操作,看起来您已经在执行此操作了,那么当您查询项目时,ajax会返回什么呢?当您看到页面时,是否检查了是否有计划请求?是否可以发布项目端点的JSON响应?我怀疑它的设置不正确。我正在使用Firebase作为我的备份数据存储,但已经尝试使用Ember CLI的http mock进行模拟。因此,原因应该在我的模拟上很明显,我的有效负载中没有我的计划数组,应该是类似于:{plans:[{id:'10',project:'1',name:'test plans:['10']}}。所以我猜我只是不知道如何在Firebase上正确填充它。
{"plans":[{id: '10', project: '1', name: 'test', plans: ['10']}]}
{
"AS": {
"name": "AS",
"plans": {
"AS-AS": true
}
},
"F": {
"name": "F",
"plans": {
"F-INT": true,
"F-QA": true,
"F-STAG": true
}
}
}
{
"AS-AS": {
"averageBuildTimeInSeconds": 23,
"description": "",
"enabled": true,
"isBuilding": false,
"name": "AS - AS",
"project": "AS",
"shortKey": "AS",
"shortName": "AS",
"type": "chain"
},
"F-INT": {
"averageBuildTimeInSeconds": 18,
"description": "Integration build",
"enabled": true,
"isBuilding": false,
"name": "F - Integration",
"project": "F",
"shortKey": "INT",
"shortName": "Integration",
"type": "chain"
},
"F-QA": {
"averageBuildTimeInSeconds": 38,
"description": "Release from Stage to QA",
"enabled": true,
"isBuilding": false,
"name": "F - QA",
"project": "F",
"shortKey": "QA",
"shortName": "QA",
"type": "chain"
},
"F-STAG": {
"averageBuildTimeInSeconds": 16,
"description": "Stage Build and Deploy",
"enabled": true,
"isBuilding": false,
"name": "F - Stage",
"project": "F",
"shortKey": "STAG",
"shortName": "Stage",
"type": "chain"
}
}