1

我正在编写一个应用程序,其中主要包含两个 javascript,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包含角度代码。我认为它的性能更高,因为它仅在加载资源时才加载角度。但是我该怎么做呢?

4

1 回答 1

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']);
于 2013-06-25T20:55:20.123 回答