Ember.js のモデル プロパティへのアクセスに問題があります
モデル:
App.Page = DS.Model.extend({
title: DS.attr('string'),
parent: DS.attr('number'),
});
コントローラ:
App.BlocksController = Ember.ArrayController.extend({
pages: function() {
return App.Page.find();
}.property(),
pageTree: function() {
var pages = this.get('pages.content'),
pageTree = new Tree();
for(var i = 0; i < pages.length; i++) {
console.log( pages[i], pages[i].id, pages[i].parent );
}
pageTree.insertList(pages);
return pageTree;
}.property('pages.@each'),
});
pageTree
テンプレート/ビューでプロパティを使用します。console.log
API から取得したオブジェクト (を含む) を出力しますが、そのid
プロパティにアクセスできません (parent
を提供しますundefined
が、API 応答にあります)。
1console.log
行は次のようになります。
Object {id: "5", clientId: 19, type: function, data: Object, prematerialized: Object…}
"5"
undefined
プロパティとして使用するpages.@each
と、プロパティpageTree
は(ロードされた)ページ配列にバインドされる必要があります。
はい、pages
ArrayController によって制御されるモデルではなく、モデルの二次セットです。
{{#each pages}}{{parent}}{{/each}}
テンプレートで使用すると機能します!それで、問題はデータバインディングに関係していると思いますか?
参考までに、私は Ember 1.0.0-rc.6.1、ember-data 0.13、ember-data-django-rest-adapter 0.13 を使用しています。