EmberJs:如何使用connectOutlet

时间:2013-01-30 13:37:51

标签: ember.js ember-router ember-old-router outlet

我创建了一个简单的测试,我尝试使用connectOutlet。但是,渲染的并不多。这是我的测试代码:http://jsfiddle.net/jeanluca/53dpA/

总结一下应用程序。我认为问题在以下代码中

App.Router.map(function(match) {
    match('/').to('index');
});     

App.IndexRoute = Em.Route.extend({
    connectOutlets: function(router) {
        router.get('applicationController').connectOutlet('sidebar', 'navigation');
        router.get('applicationController').connectOutlet('content');
    }       
});

有什么建议这个代码有什么问题吗?

此外,在我在网上找到的几乎任何示例代码中,我都看到App.Router已定义

App.Router = Em.Router.extend({
        enableLogging: true,

        root: Em.Route.extend({

            index: Em.Route.extend({
                route: '/',
                connectOutlets: function(router) {   
    .... etc ....

因为已经定义了ember-latest App.Router,我认为这是定义路由器的旧方法吗?

1 个答案:

答案 0 :(得分:3)

我在你的小提琴中看到你正在使用pre-2。最新版本是4前,所以我建议你使用它。 http://emberjs.com/guides/与4之前的版本保持同步。

我创建了一个小提琴,并以您的代码作为起点,最终得到了我认为您尝试完成的内容:http://jsfiddle.net/Energiz0r/9Xasr/4/

基本上,connectOutlet替换为

this.render('content', {into: 'index', outlet:'content');

新路由API中还有很多其他变化。再次浏览http://emberjs.com/guides/的指南,全面了解这一切。

希望这有帮助!