Javascript 需要不同依赖级别的JS
我在使用Javascript,我在使用Phonegap和googlemaps开发应用程序的项目中工作了太长时间,但现在我专注于使用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
├── 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
}
});
});
我尝试进行单元测试,以了解问题在于定义依赖关系的上下文级别(我想是这样),我尝试了以下几点:
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依赖项的正确结构
如果我在不同的脚本中使用相同的依赖项而不重新加载,该怎么办
如果我在不同的脚本中使用相同的依赖项,这样它们就不会出现冲突,该怎么办
如何定义我的应用程序入口点的正确结构?我有相同的错误,然后我参考此链接: 只需清除你的缓存 希望这也是你的锻炼