Ili*_*ski 3 domready requirejs angularjs angular-bootstrap
我有一个工作的AngularJS应用程序,并开始使用RequireJS进行模块依赖.遵循本指南 - http://www.startersquad.com/blog/angularjs-requirejs/ - 使用domReady插件手动启动角度应用程序.
在Chrome中测试并进入Uncaught object控制台.没有角度通常提供的通常细节,只有无用的调用堆栈.
这是我的应用程序的一个非常简化的版本:
<html ng-app="myApp">
<body>
<script data-main="/scripts/config.js" src="scripts/require.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
config.js:
requirejs.config({
shim: { 'angular': { exports: 'angular' } },
deps: ['starting']
});
define(['require', 'angular', 'app'], function (require, angular) {
require(['domReady!'], function (document) {
angular.bootstrap(document, ['myApp']);
});
});
Run Code Online (Sandbox Code Playgroud)
app.js:
define(['angular'], function (angular) {
var app = angular.module("myApp", []);
return app;
});
Run Code Online (Sandbox Code Playgroud)
Ili*_*ski 10
实际上,在简化版中,错误更容易被发现.问题在于模块的双重使用.第一次使用HTML(从RequireJS之前的时间开始):
<html ng-app="myApp">
Run Code Online (Sandbox Code Playgroud)
在RequireJS完成加载文档后,第二次在手动引导程序中:
angular.bootstrap(document, ['myApp']);
Run Code Online (Sandbox Code Playgroud)
所以这是HTML 的正确版本:
<html> <!-- Notice: removed ng-app -->
<body>
<script data-main="/scripts/config.js" src="scripts/require.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
此外,要看到真正的AngularJS的错误,而不是Uncaught object(这是由有例外情况特殊处理RequireJS打印),您可以捕获并显示它们如下:
require(['domReady!'], function (document) {
try {
// Wrap this call to try/catch
angular.bootstrap(document, ['materialApp']);
}
catch (e) {
console.error(e.stack || e.message || e);
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2411 次 |
| 最近记录: |