我正在编写一个主要有两个javascripts,resources_loader.js和app.js的应用程序,其中第一个加载app.js使用的一些json文件。
问题是:app.js(有angular.js的东西)应该只在resources_loader.js之后运行。我试图在成功回调中运行角度代码(resources_loader包含延迟),但这似乎不能很好地工作。这是我的index.html:
<!doctype html>
<html ng-app="myapp">
<body>
<script src="angular.js"></script>
<script src="resources_loader.js"></script>
</body>
</html>
考虑到我在成功回调中将app.js移动到resources_loader。每当我尝试运行它时,angular会引发以下异常:Uncaught Error: No module: myapp
。
我的猜测是angular.module('myapp', [])
应该在onload的事件之前运行,这不是这里的情况。
另一件事是我想在我的项目中使用yepnope.js:
<script "yepnope.js"></script>
<script "resources_loader.js"></script>
<script>
var loader = load_stuff();
yepnope({
test: loader.resolved(),
yep: ['angular.js', 'app.js', 'foo.js', 'bar.js'],
nope: ['fail.js']
});
</script>
app.js
包含角度代码。我认为它更高效,因为它只在加载资源时加载角度。但是我怎么能这样做呢?
答案 0 :(得分:1)
从ng-app
代码中移除<html>
,并在加载资源后使用angular.bootstrap(document, ['myapp']);
启动它,如下所示:
var app = angular.module('myapp', []);
app.config(['$routeProvider', '$locationProvider', function($router, $location) {
$location.html5Mode(true);
$router
.when('/', {
templateUrl: 'some_template.html',
controller: 'myController'
});
}]);
// and then, after everything, run
angular.bootstrap(document, ['myapp']);