2

emberjs を使用してルーター ベースのアプリを構築すると、次の問題が発生します。私のアプリは、次のように単純化された構造になっています。

var App = Em.Application.create({});

App.ApplicationController   = Em.Controller.extend({});

App.ApplicationView = Em.View.extend({

    template    : Em.Handlebars.compile('APPLICATION TEMPLATE')

});


App.RootState   = Em.Route.extend({

    index   : Em.Route.extend({
        route   : "/"
    })

})

App.Router  = Em.Router.extend({

    root    : App.RootState

});

    // initialize the app here
App.initialize();

// extend the RootState from anywhere. eg. from a plugged widget 
App.RootState.reopen({

    login   : Em.Route.extend({
        route   : "/state1"
    })

});

//App.initialize(); //init the app a second time forces unexpected behaviour 

App.RootState.reopen({

    alarms  : Em.Route.extend({
        route   : "/state2"
    })

});

//App.initialize();

私のアプリが示すように、実行時に新しいルートでルーターを拡張しようとします。同様の質問が存在する別のスレッドが存在することは知っていますが、議論された例は私にとってはうまくいきません。...reopen({ }) のたびに initialize() を呼び出さずに、追加のルートを使用して実行時にルーターを拡張するにはどうすればよいですか。

これを行うための背景は、実行時にアプリケーションがどのように見えるかを決定することです。たとえば、独自のルートでさまざまなウィゲットをプラグインするなどです。

よろしく、 T

4

0 に答える 0