0

我通过方法 connectOutlet 将视图连接到控制器,但我传递的是散列而不是常规参数:

outletName: 'shaa',
viewClass: MyApp.ViewAView

它被正确添加,但之后如果我通过调用更改该视图:

MyApp.router.get('applicationController').connectOutlet({
    outletName: 'shaa',
    viewClass: MyApp.ViewBView
});

Ember 不会用新视图替换旧视图。我有这个小提琴来说明我的观点 http://jsfiddle.net/6p6XJ/48/

我想,也许通过调用手动断开它disconnectOutlet会起作用,但没有http://jsfiddle.net/6p6XJ/50/。顺便说一句,在这个小提琴中,我检查了插座是否可以通过外部Route方法连接connectOutlets。可以以某种方式断开通过属性哈希连接的视图吗?

4

1 回答 1

0

我认为它工作正常,但在您的示例中,连接/断开连接的东西必须在运行循环中执行,使用 Ember.run。这里我使用 Ember.run.later 来推迟。

Ember.run.later(function(){
  MyApp.router.get('applicationController').connectOutlet({
    outletName: 'shaa',
    viewClass: MyApp.ViewBView
  });
  Ember.run.later(function(){ 
    MyApp.router.get('applicationController').disconnectOutlet('shaa');
  },1000);

 },1000);​

见:http: //jsfiddle.net/Sly7/6p6XJ/53/

于 2012-10-29T21:27:40.380 回答