[英]Phonegap, AngularJS and RequireJS
我正在尝试将AngularJS + RequireJS集成到一个Phonegap项目中。 我都在PC上运行,但是当我在Phonegap中构建项目时,LogCat中出现以下错误:
05-07 13:55:38.008:E / Web控制台(10987):未捕获的错误:脚本错误:角度05-07 13:55:38.008:E / Web控制台(10987): http ://requirejs.org/ docs / errors.html#scripterror at file:///android_asset/www/libs/require.js:138
05-07 13:55:45.058:E / Web控制台(10987):未捕获的错误:模块的加载超时:ui.router 05-07 13:55:45.058:E / Web控制台(10987): http:// requirejs .org / docs / errors.html#timeout at file:///android_asset/www/libs/require.js:138
Index.html
<script src="libs/require.js"></script>
<script>
require(['require', './js/config-require'], function (require, config) {
config.urlArgs = 'bust=v0.4.0';
window.require.config(config);
require(['./js/main.js']);
});
</script>
config-require.js
define({
paths: {
'angular' : '../libs/angular',
'async' : '../libs/async',
'domReady' : '../libs/domReady',
'ngResource' : '../libs/angular-resource',
'ui.router' : '../libs/angular-ui-router'
},
shim: {
'angular': {
'exports': 'angular'
},
'ngResource': ['angular'],
'ui.router' : ['angular']
}
});
main.js
define([
'require',
'angular',
'./app'
], function (require, angular) {
'use strict';
require(['domReady!'], function (document) {
angular.bootstrap(document, ['app']);
});
});
app.js
define([
'angular',
'ui.router',
'./config',
'./modules/home/index'
], function (ng) {
'use strict';
return ng.module('app', [
'app.constants',
'app.home',
'ui.router'
]).config(['$urlRouterProvider', function ($urlRouterProvider) {
$urlRouterProvider.otherwise('/');
}]);
});
有人可以帮助我进行配置吗?
解决方案是在config-require.js文件中设置baseUrl
改用SeaJs + AngularJs
最近,我试图在cordova中实现requirejs。 我在这里浏览了大多数相关文章,但这些解决方案均无效。
因此,我尝试使用Seajs,Seajs遵循CommonJS Spec几乎与Nodejs一样。
在Sea.js源代码中,将global.define = Module.define
替换为seajs.define = Module.define
隐藏全局define
方法。
在index.html中
<script type="text/javascript" src="sea-debug.js"></script>
<script>
seajs.config({
alias: {// similar to shim as in requirejs
"angular": "lib/angular.js"
}
});
seajs.use('app.js', function(app) {
app();
});
</script>
在app.js中
seajs.define(function(require, exports, module) {
module.exports = function() {
require('angular');//angular is loaded, you can use angular directly
var app = angular.module('App',[]);
require('./test.js')();//test test test
};
});
在test.js中
seajs.define(function(require, exports, module) {
module.exports = function() {
console.log('test test test');
};
});
然后您就可以出发了!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.