在这里,RootView 绘制了一个初始视图,然后创建了一个 BranchObj,它在其 init 函数中查找 RootView 的 branchView 并尝试将另一个视图粘贴到它上面。
问题是,即使第 1 行(应该导致控制台记录“1”)写在第 2 行(应该导致控制台记录“2”)之前,控制台也会在“1”之前记录“2”,这给出了一个错误,因为 BranchObj 在 RootView 的 branchView 中找不到它正在寻找的视图。
如何使这两个函数以正确的顺序运行?
App.RootView = Ember.CollectionView.extend({
...
didInsertElement: function() {
//draw this branch
var branchView = App.BranchView.create();
this.set("branchView",branchView);
this.get("childViews").pushObject(branchView); //Line 1
//draw a child
App.BrachObj.create({parentView:this}); //Line 2
}
});
App.BranchView = App.RaphaelView.extend({
didInsertElement: function() {
console.log(1);
},
...
});
App.BranchObj = Ember.Object.extend({
init: function() {
console.log(2);
},
...
});