2015-08-20 4 views
1

Я только начал изучать некоторые AngularJS, и я создал простую систему маршрутизации с двумя контроллерами, но мой второй контроллер ничего не делает, и я не могу решить проблему.AngularJS Controller

app.js:

angular.module('foodListerApp', [ 
'ngAnimate', 
'ngCookies', 
'ngResource', 
'ngRoute', 
'ngSanitize', 
'ngTouch']).config(function ($routeProvider) { 
$routeProvider 
    .when('/', { 
    templateUrl: 'views/main.html', 
    controller: 'MainCtrl', 
    controllerAs: 'main' 
    }) 
    .when('/about', { 
    templateUrl: 'views/about.html', 
    controller: 'AboutCtrl', 
    controllerAs: 'about' 
    }) 
    .otherwise({ 
    redirectTo: '/' 
    }); 
}); 

MainCtrl (main.js):

angular.module('foodListerApp').controller('MainCtrl', ['$scope' , $window , $location , function ($scope , $window , $location) { 



    console.log("In Main Controller ... "); 


    $scope.onSubmit = function() { 
     $window.location.href = 'views/about.html'; 
    }; 
}]); 

AboutCtrl (about.js):

angular.module('foodListerApp').controller('AboutCtrl', ['$scope' , function ($scope) { 
    console.log("In 'about' controller ..."); 
}]); 

я не включил в HTML файлы но там все хорошо выглядит, и метод onSubmit работает отлично. Первый контроллер печатает, но второй контроллер ничего не печатает, и я не уверен, почему это происходит.

+0

'$ location.path ('просмотров/about.html');' –

+0

http://stackoverflow.com/a/31360807/125816 –

ответ

2

angular.module('foodListerApp').controller('MainCtrl', ['$scope' , $window , $location , function ($scope , $window , $location) {

должен быть angular.module('foodListerApp').controller('MainCtrl', ['$scope' , '$window' , '$location' , function ($scope , $window , $location) {

вы забыли поставить кавычки вокруг них.

+0

Это не ошибка, это кажется. –

2

Вы должны использовать location provider для маршрутизации через.

$location.path('views/about.html');