これを emberjs フォーラムに投稿しましたが、SO の方が適切なようです。
やあ!classyear と classyear という 2 つのルートがあります。それらは次のようにネストされています。
this.resource('classyears', function(){
this.resource('classyear', { path: '/classyear/:classyear_id'});
});
Posterkiosk.ClassyearsRoute = Ember.Route.extend({
model: function() {
return Posterkiosk.Classyear.find();
}
});
Posterkiosk.ClassyearRoute = Ember.Route.extend({
model: function(model) {
return Posterkiosk.Classyear.find(model.classyear_id);
}
});
私のテンプレートは次のとおりです。
学年:
<div class="yearList">
{{#each item in model}}
{{#linkTo 'classyear' item}}{{item.id}}{{/linkTo}}
{{/each}}
</div>
{{outlet}}
学年:
<div class="transformContainer">
{{trigger sizeComposites}}
{{name}}
{{#each students}}
{{partial student}}
{{/each}}
</div>
(「トリガー」ヘルパーは別のSO投稿からのものです。ただし、問題は追加する前に発生していました)
Ember モデルの RESTAdapter を使用しています。/classyear/:classyear_id をロードすると、classyear がデータを 2 回レンダリングしているように見えます。1 回は正しくロードされたデータで、もう 1 回はデータがロードされていません。順番はランダムのようです。データなしオプションが最後に発生すると、正しくロードされたデータが消去され、空白のページが残ります。逆に、ページのコンテンツは問題なく表示されます。
何かご意見は?
/編集 2: 詳細情報:
0 レコードの応答は、classyears の読み込みからのもののようです。したがって、ゼロ レコードの返信は、実際には、私の hasMany フィールド「students」のゼロ レコードである可能性があります。
/classyears (学年が指定されていない) をロードすると、学年のオプションを取得するために 1 回だけロードされます。次に学年をクリックすると、ページを更新しない限りclassyearsがリロードされず、その時点で両方が読み込まれ、classyearsの読み込み(findall)が2番目に終了すると、ページにデータが表示されません(他のclassyears テンプレートよりも上部に正しく入力されています)。
それで...多分私のclassyearsモデルはhasManyフィールドを正しく処理していませんか?
近づいた気がしますが、まだ何が起こっているのかわかりません。