Javascript 需要不同依赖级别的JS

Javascript 需要不同依赖级别的JS,javascript,oop,backbone.js,requirejs,Javascript,Oop,Backbone.js,Requirejs,我在使用Javascript,我在使用Phonegap和googlemaps开发应用程序的项目中工作了太长时间,但现在我专注于使用Javascript编写代码,但现在我在js目录中有了下一个目录和脚本结构: ├── controlador │   └── DeviceController.js ├── launcher.js ├── libs │   ├── backbone.googlemaps.js │   ├── backbone.js │   ├── class.js │   ├── i

我在使用Javascript,我在使用Phonegap和googlemaps开发应用程序的项目中工作了太长时间,但现在我专注于使用Javascript编写代码,但现在我在js目录中有了下一个目录和脚本结构:

├── controlador
│   └── DeviceController.js
├── launcher.js
├── libs
│   ├── backbone.googlemaps.js
│   ├── backbone.js
│   ├── class.js
│   ├── index.js
│   ├── jquery.js
│   ├── jquery.mobile.min.js
│   ├── mustache.js
│   ├── require.js
│   └── underscore.js
├── modelo
│   └── Ubicacion.js
└── vista
   ├── GoogleMap.js
   ├── Informacion.js
   ├── MarcadorBahia.js
   ├── MarcadorDispositivo.js
   ├── MarcadorParqueadero.js
   └── MarkerView.js
所以,我用javascript更容易地处理对象,我试着用主干网,我做到了,它很有效

我的问题是,当我尝试使用时,无法以正确的方式加载脚本

以下是显示浏览器的错误:

Uncaught ReferenceError: com is not defined launcher.js:18
(anonymous function) launcher.js:18
i.execCb require.js:29
Z.check require.js:18
(anonymous function) require.js:22
(anonymous function) require.js:8
(anonymous function) require.js:23
y require.js:7
Z.emit require.js:23
Z.check require.js:19
Z.enable require.js:23
Z.init require.js:16
E require.js:14
i.completeLoad require.js:27
i.onScriptLoad require.js:29

Uncaught TypeError: Cannot read property 'Model' of undefined Ubicacion.js:11
(anonymous function) Ubicacion.js:11
i.execCb require.js:29
Z.check require.js:18
Z.enable require.js:23
Z.init require.js:16
(anonymous function)
这是我的应用程序的入口点launcher.js的代码:

require.config({
路径:{
jquery:'libs/jquery',
谷歌地图API:'https://maps.googleapis.com/maps/api/js?key=AIzaSyC35BOQq2RvkKjzh0NhohKbQtUa3KWBM1o&sensor=false',  
下划线:“libs/下划线”,
主干:“libs/backbone”,
小胡子:“libs/小胡子”,
类:“libs/class”,
ubicacion:'modelo/ubicacion',//DeviceController需要此类I
设备控制器:“控制器/设备控制器”
}
});
require(['jquery'、'下划线'、'主干'、'mustache'、'class'、'ubicacion'、'deviceController'],
功能(美元、欧元、主干、胡子)
{ 
var deviceController=new com.gcvv.bsp.controller.deviceController();
});
DeviceController类是:

require(['jquery'、'下划线'、'backbone'、'class'、'ubicacion'],
函数($,389;,主干){
$namespace(“com.gcvv.bsp.controller”);
$class(“com.gcvv.bsp.controller.DeviceController”{
$constructor:function(){
this.ubicacion=com.gcvv.bsp.modelo.ubicacion(0,0);
},
getPosicionActual:function()
{
if(导航器.地理位置){
navigator.geolocation.getCurrentPosition(this.localizacion,this.error);
}否则{
console.错误(“El dispositivo no soporta Geologizacion”);
}
},
本地化:功能(位置){
this.ubication.set('longitud',posicion.coords.latitude);
this.ubication.set('latitud',posicion.coords.longitud);
},
错误:函数(){
控制台错误(“处置权的错误”);
}
});
}); 
这是Ubicacion.js的代码:

require(['jquery','下划线','backbone','class'],
函数($,389;,主干){
$namespace(“com.gcvv.bsp.modelo”);
$class(“com.gcvv.bsp.modelo.Ubicacion”{
$extends:Backbone.Model,
默认值:{
经度:0,
纬度:0
}
}); 
});
我尝试进行单元测试,以了解问题在于定义依赖关系的上下文级别(我想是这样),我尝试了以下几点:

  • 我使用DeviceController(Ubicacion)内部的类来测试这是否有效 好的
  • 在Ubicacion类中,我移除了require的station
  • require.config({
    路径:{
    jquery:'libs/jquery',
    谷歌地图API:'https://maps.googleapis.com/maps/api/js?key=AIzaSyC35BOQq2RvkKjzh0NhohKbQtUa3KWBM1o&sensor=false',  
    下划线:“libs/下划线”,
    主干:“libs/backbone”,
    小胡子:“libs/小胡子”,
    类:“libs/class”,
    ubicacion:“modelo/ubicacion”,
    设备控制器:“控制器/设备控制器”
    }
    });
    require(['jquery'、'下划线'、'主干'、'mustache'、'class'、'ubicacion'、'deviceController'],
    函数($,\u,主干,胡子,$class,Ubicacion)
    { 
    var ubicacion=new com.gcvv.bsp.modelo.ubicacion();
    console.log(ubicacion.get('longitud');//我得到0,默认值
    });
    
    因此,Ubicacion类具有以下变化:

    $namespace(“com.gcvv.bsp.modelo”);
    $class(“com.gcvv.bsp.modelo.Ubicacion”{
    $extends:Backbone.Model,
    默认值:{
    经度:0,
    纬度:0
    }
    }); 
    
    我做错了什么

    如何在我需要使用的每个文件中定义require依赖项的正确结构

    如果我在不同的脚本中使用相同的依赖项而不重新加载,该怎么办

    如果我在不同的脚本中使用相同的依赖项,这样它们就不会出现冲突,该怎么办


    如何定义我的应用程序入口点的正确结构?

    我有相同的错误,然后我参考此链接:

    只需清除你的缓存

    希望这也是你的锻炼