0

我试图从视图didInsertElement钩子中获取我的模型数据,因为我需要在模板渲染完成时触发 DOM 上的一些操作

使用以下模型:

App.MyParent = DS.Model.extend({
    title: DS.attr('string'),
    childs: DS.hasMany('App.MyChild')
});

App.MyChild = DS.Model.extend({
    name: DS.attr('string'),
    parent: DS.belongsTo('App.MyParent')
});

和对象,如:

App.MyParent.FIXTURES = [
    { id: 0, title: "some title", childs: [0,2,3] }
]

App.MyChild.FIXTURES = [
    { id: 0, name: "some name", parent: 0 },
    { id: 2, name: "other name", parent: 0 },
    { id: 3, name: "diff name", parent: 0 }
]

在钩子函数内部,我正在访问childs属性,如下所示:

var childs = this.get("context.content.childs");

然后我得到一个具有正确数量的孩子的可枚举,但孩子都有未定义的属性。

更新似乎我可以通过App.MyChild.find(someId) 找到孩子的唯一地方是在浏览器控制台中,在我的应用程序代码中,我只获取具有未定义属性的对象。

我很困惑!

4

1 回答 1

1

要访问 childs 属性,请尝试以下操作:

var childs = this.get("context.content.childs");

此外,关联的夹具数据不应使用 _id 或 _ids。所以使用childsandparent代替:

App.MyParent.FIXTURES = [
  { id: 0, title: "some title", childs: [0,2,3] },
];

App.MyChild.FIXTURES = [
  { id: 0, name: "some name", parent: 0 },
  { id: 2, name: "other name", parent: 0 },
  { id: 3, name: "diff name", parent: 0 },
];

http://jsbin.com/ucanam/316/

于 2013-07-06T17:46:42.383 回答