我目前正在处理某个应用程序,由于某些原因,该视图无法找到该控制器。我怀疑它是因为app.js中的ngRoute。这是我得到的错误:Argument' MainCtrl'不是一个功能。
下面是代码片段。
HTML
<div ng-controller="MainCtrl">
<script src="select.controller.js"></script>
<div>
<label>Pick a title:
<select ng-model="data. title">
<option value="Mr">Mr</option>
<option value="Mrs">Mrs</option>
</select>
</label>
</div>
<div>
<label>Type your name:
<input type="text" ng-model="data.test">
</label>
</div>
<input type="submit" ng-click="info()">
</div>
JS var app = angular.module(&#39; app&#39;,[]);
app.controller('MainCtrl', function($scope) {
$scope.data = {
title: "Mr",
test: ""
}
$scope.info = function()
{
alert("you are " + $scope.data.title + " " + $scope.data.test)
console.log('T');
}
});
App.js
(function () {
'use strict';
angular
.module('app', ['ngRoute', 'ngCookies'])
.config(config)
.run(run);
config.$inject = ['$routeProvider', '$locationProvider'];
function config($routeProvider, $locationProvider) {
$routeProvider
.when('/', {
controller: 'HomeController',
templateUrl: 'home.view.html',
controllerAs: 'vm',
})
.when('/select', {
controller: 'SelectController',
templateUrl: 'select.html',
controllerAs: 'vm',
.when('/login', {
controller: 'LoginController',
templateUrl: 'login.view.html',
controllerAs: 'vm'
})
.when('/register', {
controller: 'RegisterController',
templateUrl: 'register.view.html',
controllerAs: 'vm'
});
}
run.$inject = ['$rootScope', '$location', '$cookieStore', '$http'];
function run($rootScope, $location, $cookieStore, $http) {
// keep user logged in after page refresh
$rootScope.globals = $cookieStore.get('globals') || {};
if ($rootScope.globals.currentUser) {
$http.defaults.headers.common['Authorization'] = 'Basic ' + $rootScope.globals.currentUser.authdata; // jshint ignore:line
}
$rootScope.$on('$locationChangeStart', function (event, next, current) {
var restrictedPage = $.inArray($location.path(), ['/login', '/register']) === -1;
var loggedIn = $rootScope.globals.currentUser;
if (restrictedPage && !loggedIn) {
$location.path('/login');
}
});
}
})();