connectOutlet / disconnectOutlet与viewClass无法正常工作?

时间:2012-10-29 20:55:33

标签: ember.js

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

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/。 BTW在这个小提琴中我检查了是否可以在Route的{​​{1}}方法之外连接插座。 可以通过某种方式断开通过属性哈希连接的视图吗?

1 个答案:

答案 0 :(得分:0)

我认为它工作正常,但在您的示例中,连接/断开连接的东西必须使用Ember.run在runloop中执行。在这里,我使用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/