手动引导AngularJS然后获取模块

Gre*_*egg 12 angularjs

一般来说,我会做以下操作ng-app,我的HTML中会有一个:

var myApp = angular.module("myApp", []);

myApp.controller("AttributeCtrl", function ($scope) {
    $scope.master = {
        name: "some name"
    };
});
Run Code Online (Sandbox Code Playgroud)

但是,我需要手动引导角度,因为我只在我通过jQuery加载的应用程序的一部分中使用它$.load().如果我执行以下操作:

main.js - 这是我想要使用angular on的页面被拉入的地方

$("#form").load(contextPath + url, params, function() {
    angular.bootstrap($("#angularApp"));
});
Run Code Online (Sandbox Code Playgroud)

然后被拉入的页面有它自己的javascript:

function AttributeCtrl($scope) {
  $scope.master = { name: "some name"};
}
Run Code Online (Sandbox Code Playgroud)

但是,理想情况下,我希望我的控制器可以在模块级别进行作用.所以我修改了上面的代码

main.js

$("#form").load(contextPath + url, params, function() {
    angular.bootstrap($("#angularApp", ["myApp"]));
});
Run Code Online (Sandbox Code Playgroud)

然后...

var app = angular.module("myApp"); // retrieve a module

app.controller("AttributeCtrl", function($scope) {
  $scope.master = { name: "some name"};
});
Run Code Online (Sandbox Code Playgroud)

但是,以这种方式检索模块似乎不起作用.难道我做错了什么?

Jus*_*nen 1

我不知道这是否只是在您这里的示例代码中,但是:

angular.bootstrap($("#angularApp", ["myApp"]));
Run Code Online (Sandbox Code Playgroud)

应该

angular.bootstrap($("#angularApp"), ["myApp"]);
Run Code Online (Sandbox Code Playgroud)

您用于检索模块的代码应该可以工作。