【问题标题】:Backbone Marionette, How to load JS file when the routes be called?Backbone Marionette,调用路由时如何加载 JS 文件?
【发布时间】:2014-01-20 12:23:56
【问题描述】:

这是我的路线,

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

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

【问题讨论】:

    标签: backbone.js coffeescript marionette


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-17
      • 2013-03-16
      • 2017-07-08
      相关资源
      最近更新 更多