我想进行多次更改,然后让数据绑定的视觉更改发生,而不是一步一步。就像交易一样,不会导致UI的逐步更新。
setupController: function( controller, model ) {
var manager = controller.get('manager');
controller.set('model', model); // Will databound UI evaluate NOW?
if (manager)
manager.reset();
else
controller.set('manager', App.WorkManager.create());
// Or will the databound UI evaluate after this full function has run?
},
setupController: function( controller, model ) {
var manager = controller.get('manager');
// Best solution would be - Part 1
// ????.suspendRendering();
controller.set('model', model);
if (manager)
manager.reset();
else
controller.set('manager', App.WorkManager.create());
// Best solution would be - Part 2
// ????.resumeRendering();
},
答案 0 :(得分:1)
它的工作方式与Ember的运行循环相关联。它有一个非常好的解释here。基本上,运行循环负责确保所有计算属性绑定和观察者都有机会在任何更改的值最终呈现给DOM之前触发。我相信路由转换发生在运行循环的上下文中。因此,在setupController
内执行的任何代码都将在UI呈现发生之前完全执行。