【问题标题】:jQueryMobile and backbone - how to load "routers/mobileRouter"jQuery Mobile 和骨干网 - 如何加载“路由器/移动路由器”
【发布时间】:2013-08-19 14:46:44
【问题描述】:

我正在尝试使用 jQueryMobile、Backbone 和 RequireJs 设置项目。下面是相关代码sn-p:

require([ "jquery", "backbone", "routers/mobileRouter" ], 
    function( $, Backbone, Mobile ) {
        /* do something */
    }
) ;

它实际上来自here。运行代码会在 'routers/mobileRouter' 上给出 404

GET http://localhost:9000/scripts/routers/mobileRouter.js 404 (Not Found) 

例如,如果我在我的项目中搜索“mobileRouter.js”,我会得到以下信息

./app/bower_components/jquery-mobile/demos/examples/backbone-require/js/routers/mobileRouter.js
./app/bower_components/jquery-mobile/dist/demos/examples/backbone-require/js/routers/mobileRouter.js

这些是演示/示例,那么我应该如何加载它,也许我需要安装其他包?任何指向相关文档的链接当然也会对我有所帮助!

更新:这里是所有的 js 代码

// Sets the require.js configuration for your application.
require.config( {

    // 3rd party script alias names (Easier to type "jquery" than "libs/jquery-1.8.3.min")
    paths: {
        // Core Libraries
        jquery:      '../bower_components/jquery/jquery',
        backbone:    '../bower_components/backbone/backbone',
        underscore:  '../bower_components/underscore/underscore',
        jquerymobile:'../bower_components/jquery-mobile/dist/jquery.mobile.min'

    },

    // Sets the configuration for your third party scripts that are not AMD compatible
    shim: {

        "backbone": {
            "deps": [ "underscore", "jquery" ],
            "exports": "Backbone"  //attaches "Backbone" to the window object
        },
        "jquery.mobile": ['jquery']
    } // end Shim Configuration
} );

// Includes File Dependencies
require([ "jquery", "backbone", "routers/mobileRouter" ], function( $, Backbone, Mobile )       {

    $( document ).on( "mobileinit",
        // Set up the "mobileinit" handler before requiring jQuery Mobile's module
        function() {
            // Prevents all anchor click handling including the addition of active button state and alternate link bluring.
            $.mobile.linkBindingEnabled = false;

            // Disabling this will prevent jQuery Mobile from handling hash changes
            $.mobile.hashListeningEnabled = false;
        }
    );

    require( [ "jquerymobile" ], function() {
        // Instantiates a new Backbone.js Mobile Router
        this.router = new Mobile();
    });
} );

【问题讨论】:

  • 我想我知道问题出在哪里。这只是他们为this demo 写的东西 :) 这是他们对骨干网的实现。

标签: javascript jquery-mobile backbone.js requirejs yeoman


【解决方案1】:

只需在路径中添加另一个键/值:

paths: {
    // Core Libraries
    jquery:      '../bower_components/jquery/jquery',
    backbone:    '../bower_components/backbone/backbone',
    underscore:  '../bower_components/underscore/underscore',
    jquerymobile:'../bower_components/jquery-mobile/dist/jquery.mobile.min',
    jquerymobilerouter: '../bower_components/jquery-mobile/demos/examples/backbone-require/js/routers/mobileRouter.js'
},

那么你可以这样使用它:

require(["jquery", "backbone", "jquerymobilerouter"], function($, Backbone, MobileRouter) {
});

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多