0
我敢肯定,这是一个非常愚蠢的问题,但我是新来的angularjs,并试图找到解决方案,但似乎没有任何工作。这可能是我解释路由器错了。没有加载angularjs控制器(不使用ng控制器)
我的控制器只在我将ng-controller添加到html文件时加载,如果我不是这样,但我认为路由器会照顾它。我在这个例子中使用了requirejs并缩小了我的脚本。
的index.html
<!doctype html>
<html ng-app>
<head>
<!-- load our application -->
<script src="assets/vendor/requirejs/require.js" data-main="assets/js/config"></script>
</head>
<body id="splash">
hehe my page
</body>
</html>
config.js
requirejs.config({
baseUrl: 'assets/js',
paths: {
angular: '..\\vendor\\angularjs\\angular',
bootstrap: '..\\vendor\\bootstrap',
jquery: '..\\vendor\\jquery\\jquery'
},
shim: {
bootstrap: [
'jquery'
],
angular: {
deps: ['jquery'],
exports: 'angular'
}
}
});
require(['app/app']);
app.js
define(['angular'], function (angular) {
angular.module('fettnerd.controllers', []);
angular.module('fettnerd', ['fettnerd.controllers']);
require(['app/routing'], function() {
angular.bootstrap(document, ['fettnerd']);
});
});
router.js
define(['angular', 'app/controllers/IndexCtrl'], function(angular) {
angular.module('fettnerd')
.config(function($routeProvider, $locationProvider) {
$locationProvider.html5Mode(true); // we want history api
$routeProvider.when("/home", {
controller: "IndexCtrl"
});
$routeProvider.otherwise({redirectTo: '/home'});
});
});
个IndexCtrl.js
define(['angular', 'jquery'], function(angular, $) {
angular.module('fettnerd.controllers')
.controller('IndexCtrl', function($scope) {
console.log('test');
$scope.login = function(e) {
alert('Soon. How soon? Very soon.');
}
});
});
哈哈我知道这真的很愚蠢。非常感谢! – wardpeet