Friday, May 10, 2024
 Popular · Latest · Hot · Upcoming
93
rated 0 times [  99] [ 6]  / answers: 1 / hits: 60211  / 10 Years ago, thu, may 22, 2014, 12:00:00

I got this error while loading the requirejs file for the backbone. I tried loading the r.js, the requirejs optimizer, but I'm still stuck with it.



Uncaught Error: Mismatched anonymous define() module: function definition(name, global){

use strict;

var PubSub = {
name: 'PubSubJS',
version: '1.3.1-dev'


Following is my js:



define([
'jquery',
'underscore',
'backbone'
],function(){
subAccountRouter = Backbone.Router.extend({
routes: {
// Defining the routes
'sub-accounts': 'subAccountList',
'*actions': 'defaultAction'
},
});


Seems there have been some changes made to requirejs define() call function, somehow cant figure it out. Does anyone have ideas??



EDIT:::



Below is the router.js file.



    define([
'jquery',
'underscore',
'backbone'
],function($, _, Backbone){
SubAccountRouter = Backbone.Router.extend({
routes: {
'sub-accounts': 'subAccountList',
'*actions': 'defaultAction'
},


initialize: function () {
this.appContainer = $(#subaccount);
//collections and models
this.subAccountCollection = null;
this.subAccountModel = null;
},

subAccountList: function(){
var self = this;
},
defaultAction: function(){
this.subAccountList();
},
});

return {
initialize: function() {
Backbone.history.start();

}
};
}); //main func


What im i doing wrong here??
I check al my paths and they seem to be correct, i still dont get why this issue is still bugging me..:(
I have tried changing the paths for the routes, and also passing arguments to the function($, _, Backbone)(as shown below in 1 of the sol'n). However i still seem to see the error. Does any one have any other ideas???


More From » backbone.js

 Answers
38

UPDATE



After checking the docs - this is actually the first error they discuss:



If you manually code a script tag in HTML to load a script with an anonymous define() call, this error can occur.



So make sure the only <script> tag (at least for any scripts which call define()) in your index.html is the one to requirejs.



END UPDATE



You need to pass in parameters to your function() like so:



define([
'jquery',
'underscore',
'backbone'
],function(jquery, underscore, backbone){
subAccountRouter = Backbone.Router.extend({
routes: {
// Defining the routes
'sub-accounts': 'subAccountList',
'*actions': 'defaultAction'
},
});


I wrote a super-simple post on setting up requirejs recently, if you're still stuck.


[#70907] Tuesday, May 20, 2014, 10 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
mireyag

Total Points: 73
Total Questions: 107
Total Answers: 85

Location: Ukraine
Member since Sun, Dec 13, 2020
3 Years ago
mireyag questions
Sun, Aug 15, 21, 00:00, 3 Years ago
Wed, Dec 16, 20, 00:00, 3 Years ago
Tue, Sep 1, 20, 00:00, 4 Years ago
Sun, Jul 5, 20, 00:00, 4 Years ago
;