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');
    }       
});

このコードの何が問題なのですか?

また、Web で見つけたほとんどすべてのサンプル コードで、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 が既に定義されているため、これは Router を定義する古い方法だと思いますか?

4

1 に答える 1

3

あなたのフィドルで、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/のガイドを参照して、すべてを完全に理解してください。

お役に立てれば!

于 2013-01-30T14:14:33.290 に答える