我认为你不应该在控制器中玩 dom。这打破了 MVC。也许一种解决方案是在视图中定义一个观察者,监听控制器的内容。在这个观察者中,然后玩 dom(你在视图中,所以没问题)。正如@pangratz 建议的那样,通过一些代码,也许我可以给你一个更完整的答案。
编辑:我认为您可以将轮播功能放在相关视图中,并观察 controller.loading 属性。在这里,您可以使用 this.$() 检索视图的 jquery 对象。
carousel: function() {
var context = this.get('controller'),
self = this;
if(context.get('loading') === false) {
setTimeout(function() {
var width = self.$('#page_wrapper').width(),
num = self.$('.page').size();
self.$('#pages').width(width * num);
self.$('.page').width(width);
console.log([width, num]);
console.log(context.get('elements'));
}, 100);
}
}.observes('controller.loading')
希望这有助于...