0

我创建了一个简单的测试,我在其中尝试使用 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 已经定义,我认为这是定义路由器的旧方法?

4

1 回答 1

3

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

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

基本上 connectOutlet 被替换为

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

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

希望这可以帮助!

于 2013-01-30T14:14:33.290 回答