Backbone Marionette,如何在调用路由时加载JS文件?

时间:2014-01-02 22:48:03

标签: backbone.js coffeescript marionette

这是我的路线,

define [
    'apps/home/index/index'
    'apps/home/edit/index'
    'apps/home/about/aboutUs'
    'apps/home/about/jobs'
],
(HomeIndex, EditIndex, aboutUsIndex, jobsIndex) ->
    class Router extends Marionette.AppRouter
        routes :
            '' : 'indexPage'
            'index' : 'indexPage'
            'edit' : 'editApp'
            'aboutUs' : 'aboutUsPage'
            'jobs' : 'jobsPage'

        indexApp : () ->
            @homeIndex = new HomeIndex()
            App.contentArea.show @homeIndex

        editApp : () ->
            @homeIndex = new EditIndex()
            App.contentArea.show @homeIndex

        aboutUsPage : () ->
            @homeIndex = new aboutUsIndex()
            App.contentArea.show @homeIndex

        jobsPage : () ->
            @homeIndex = new jobsIndex()
            App.contentArea.show @homeIndex

但是当路由加载时(仅当它打开索引时),它将加载所有不必立即加载的文件。

所以,我想改成这样,以减少加载时间。

define [
    'apps/home/index/index'
],
(HomeIndex) ->
    class Router extends Marionette.AppRouter
        routes :
            '' : 'indexPage'
            'index' : 'indexPage'
            'edit' : 'editApp'
            'aboutUs' : 'aboutUsPage'
            'jobs' : 'jobsPage'

        indexApp : () ->
            @homeIndex = new HomeIndex()
            App.contentArea.show @homeIndex

        editApp : () ->
            # LOAD 'apps/home/edit/index' file, if it has not loaded
            @homeIndex = new EditIndex()
            App.contentArea.show @homeIndex

        aboutUsPage : () ->
            # LOAD 'apps/home/about/aboutUs' file, if it has not loaded
            @homeIndex = new aboutUsIndex()
            App.contentArea.show @homeIndex

        jobsPage : () ->
            # LOAD 'apps/home/about/jobs' file, if it has not loaded
            @homeIndex = new jobsIndex()
            App.contentArea.show @homeIndex

这可能吗?如果是这样,我该怎么做,请指教。

1 个答案:

答案 0 :(得分:1)

是的,这是可能的你可以使用Require.js来做到这一点,你需要做的只是在你的项目中使用这个库,并使你的应用程序结构像他所要求的那样......