RequireJS + Angular:未定义的应用程序.回调不触发
RequireJS + Angular: Undefined app. Callback doesn't shoot
我得到了main.js,用这个简单的代码:
'use strickt';
require.config({
paths: {
'angular' : 'libs/angular' ,
'angular-router' : 'libs/angular-route' ,
},
shim : {
'angular' : {
exports : 'angular'
},
'angular-router' : {
deps: ['angular']
}
}
});
require(['app'], function (mainApp) {
console.log(mainApp);
});
如您所见,我尝试在需要回调的情况下获取应用程序。但我得到的只是不确定的。这是我在应用程序.js文件内部得到的:
define('mainApp', ['angular', 'angular-route'], function (angular) {
var app = angular.module('mainApp', ['ngRoute']);
console.log('should be fired from app.js');
return app;
});
所以问题来了:函数参数 'mainApp' 在 main.js 中未定义回调似乎是合乎逻辑的,因为 app.js 内部的 console.log() 不会触发。有人可以告诉我它有什么问题吗?
只需删除app.js文件中的模块名称(或将其更改为"app")。您的应用程序.js文件将如下所示:
define(['angular', 'angular-route'], function (angular) {
var app = angular.module('mainApp', ['ngRoute']);
console.log('should be fired from app.js');
return app;
});
http://requirejs.org/docs/api.html#modulename
您可以自己显式命名模块,但它会使模块 便携性较差 - 如果将文件移动到另一个目录,您将 需要更改名称。通常最好避免在名称中编码 对于模块,只需让优化工具在模块中燃烧 名字。优化工具需要添加名称,以便超过 一个模块可以捆绑在一个文件中,以便更快地加载 浏览器。
相关文章:
- 未为路由器应用程序调用Node.Js的回调
- $http.delete回调未在基本CRUD应用程序中启动
- 从 Spotify 应用程序中的回调获取专辑数据
- 要求多页&多应用程序未执行定义回调
- 如何在点击链接后从用户取消对话框中获得回调以选择移动应用程序
- 使用回调处理程序调用函数内部的父对象方法
- 数据库回调后的Express应用程序使用
- JavaScript 弹出窗口阻止程序和 Ajax 回调 - C# MVC 应用程序
- 具有不同回调处理程序的单一实例 Websockets 对象
- RequireJS + Angular:未定义的应用程序.回调不触发
- Soundcloud JS SDK - SC.如果 iOS 上安装了应用程序,则 Connect() 回调窗口无法关闭
- 管理“;这个“;在事件/回调驱动的JavaScript应用程序中
- 如何将数据从json获取到nodejs并发送回angular应用程序
- 为什么这个回调处理程序被调用两次
- 用JavaScript将对象转换为用于存储的数组,再转换回用于应用程序的数组
- 如何将RailsJquery添加回Rails应用程序
- javascript类中的共享回调处理程序
- 正确指代“这个”的方式在Backbone JS中保存后查看回调处理程序(成功或错误)
- 如何在jQuery插件中编写回调处理程序函数
- 如何将回调应用于多个元素