Firebase に裏打ちされた ember アプリケーションを介していくつかの CI 情報を表示しようとしています。私が行うthis.store.find('plan');
と、目的のプロジェクトの計画をフェッチして表示しますが、必要な計画を自動的に非同期フェッチしません。何が間違っているのかよくわかりません。
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>
project.plans プロパティにアクセスしようとしたときに、ember-data 非同期関係を自動的に取得するにはどうすればよいですか?
編集:
私は Ember-CLI の http-mock でモックを作成しようとしましたが、以下を返信しています/projects
{"plans":[{id: '10', project: '1', name: 'test', plans: ['10']}]}
これは、計画配列の追加に取り組んでいます。これがfirebaseでどのように機能するかを理解する必要があります。