我使用requirejs和angularjs在我的应用程序中加载模块。 我面临的问题是我不知道如何在角度被引导后加载控制器。这是我的代码:
main.js:
require(['app', //all my scripts go here
function(){
angular.bootstrap(document, ['myApp']);
});
app.js:
define([], function(){
var myApp = angular.module('myApp', ['ngRoute']);
$routeProvider.
when('/home', {
templateUrl : 'partials/home.html',
controller : 'UserRegisterCtrl'
}).
otherwise({
redirectTo : '/home'
})
return myApp;
})
controller.js
define(['app'], function(app){
app.controller('MyCtrl', function($scope){});
})
myApp.html
body(ng-app)
<div ng-controller = 'MyCtrl'></div> <-- I can not put MyCtrl here
because I think the MyCtrl has been declared before myApp has been bootstrapped
因此,我真的需要知道在myApp引导后是否有办法加载MyCtrl控制器。我是Angularjs的新手。任何帮助都会非常感激。
答案 0 :(得分:1)
如果您手动引导角度应用程序,则不需要ng-app,因为这只是一个指令,几乎可以做同样的事情。
这个小陷阱导致一些人头疼:
答案 1 :(得分:1)
在html中使用ng-app
时,引导程序会自动发生。在这种情况下,它取决于您在<script>
中的index.html
标记中添加的内容。
我假设您在使用RequireJS加载angular
时遵循RequireJS用法。如果是,请确保使用angular
声明app
与shim
的相关性。如果不是这种情况,请说明您的加载方式angular
并分享main.js
的内容。
让RequireJS与AngularJS合作对我来说真的很棘手,所以我创建了以下帮助我处理复杂性的项目: