0
我想與requirejs使用角度。這是我的index.html
文件角度與requirejs - 參數控制器不是一個函數,得到undefined
<!DOCTYPE html>
<html>
<head>
<script data-main="/js/app.js" src="/bower_components/requirejs/require.js"></script>
</head>
<body >
<div ng-view ng-controller="accountController"></div>
</body>
</html>
app.js文件
require.config (
{
appDir : '',
baseUrl : '/js/',
paths :
{
// Configure alias to full paths
'angular': '/bower_components/angular/angular.min',
'ngRoute': '/bower_components/angular-route/angular-route.min',
'main': 'main'
},
shim :
{
'main':{
deps: ["angular", 'ngRoute']
},
'ngRoute':{
deps: ["angular"]
}
}
});
require([ "main" ], function(app)
{
// Application has bootstrapped and started...
});
main.js
文件
define([
'common/RouteManager'
], function(RouteManager){
var appName = 'elara',
depends = ['ngRoute'],
app = angular.module(appName, depends).config(RouteManager)
angular.bootstrap(document.getElementsByTagName('body')[0], [ ]);
return app;
});
RouterManager.js
(function (define) {
define([
'controllers/account'
], function(){
var RouteManager = $routeProvider.when("/", angularAMD.route({
templateUrl: '/html/tmpl/test.html', controller: 'registerController',
controllerUrl: 'controllers/account.js'
})).otherwise({redirectTo: "/"});
return ["$routeProvider", RouteManager ];
})
});
最後我的控制器:
define(['common/settings'], function(settings){
var accountController = function($scope, $http){
$scope.username = "";
$scope.password = "";
$scope.register = function(){
$http.post(config.apiAddress + "account/login/", {username: $scope.username, password: $scope.password}).then(
function(data){
console.log(data);
}, function(response){
console.log(response);
})
}
};
return accountController;
});
我越來越
參數 '的AccountController' 不是一個函數,得到了不確定
例外。當我檢查網絡選項卡時,我的account.js
文件未加載。所以角度不知道accountController
不要是傢伙......但爲什麼要在Angular上使用requireJS? 99%的所有Angular應用程序都需要做什麼,但會增加複雜性。您從懶惰下載的文件中獲得的節省與投入的時間相比毫無意義(您甚至可能因延遲而失去性能)。除非你正在研究一個真正龐大的代碼庫,而且懶惰下載是必須的。 –