2015-04-13 2 views
2

У меня, похоже, проблема с Angularjs, использующая «NgRoute» для перехода на страницу. У меня есть еще 3 страницы с контроллерами, и они работают абсолютно нормально, однако при попытке перейти на страницу Dashboard он загружает только представление, а не контроллер.Angularjs не может войти в контроллер

AngularJS App

var app = angular.module('app', ['ngRoute']); 

app.config(function ($routeProvider) { 

    $routeProvider.when("/dashboard", { 
     contoller: "dashboardController", 
     templateUrl: "/app/views/dashboard.html", 
    }) 

    $routeProvider.when("/machines", { 
     controller: "machineController", 
     templateUrl: "/app/views/machines.html", 
    }) 

    $routeProvider.when("/departments", { 
     controller: "departmentController", 
     templateUrl: "/app/views/departments.html", 
    }) 

    $routeProvider.when("/users", { 
     controller: "userController", 
     templateUrl: "/app/views/users.html", 
    }); 

    $routeProvider.otherwise({ redirectTo: "/dashboard" }); 
}); 

Контроллер

'use strict'; 
app.controller('dashboardController', ['$scope', '$http', 'Page', function ($scope, $http, Page) { 
    Page.setTitle('Dashboard'); 

}]); 

HTML

<html xmlns="http://www.w3.org/1999/xhtml" ng-app="app"> 
<head> 
     <!-- Angular Js --> 
     <script src="js/angular.min.js"></script> 
     <script src="js/angular-route.min.js"></script> 

     <!-- Application --> 
     <script src="app/app.js"></script> 

     <!-- Controllers --> 
     <script src="app/controllers/pageController.js"></script> 
     <script src="app/controllers/dashboardController.js"></script> 
     <script src="app/controllers/departmentController.js"></script> 
     <script src="app/controllers/machineController.js"></script> 
     <script src="app/controllers/userController.js"></script> 
</head> 

Когда я отладки контроллер он не проходит мимо экземпляра контроллера во второй строке. У кого-нибудь есть идеи?

+0

где вы декларирование 'dashboardController'? – Shaxrillo

+0

В главе моего указателя Страница – JohnCooling

+0

Можете ли вы опубликовать ошибку, которую вы получаете? Моя кишка говорит мне, что «использовать строгую»; противоречит ссылке на app.controller. Я предполагаю, что ваш контроллер находится в отдельном файле .js (на основе ваших фрагментов), и в этом случае «use strict»; МОЖЕТ волноваться, поскольку он не знает, что такое приложение. (т. е. является ошибкой что-то в форме «не может вызывать метод« контроллер »неопределенного») –

ответ

4

Вы опечатка контроллер в вашей конфигурации. Кроме того, как указывает Нидхиш, вы можете связать свою конфигурацию, так как вызов when снова возвращает маршрутизатора.

Таким образом, ваш (фиксированный) код

var app = angular.module('app', ['ngRoute']); 

app.config(function ($routeProvider) { 

    $routeProvider.when("/dashboard", { 
     // you have missed an r in controller here 
     controller: "dashboardController", 
     templateUrl: "/app/views/dashboard.html", 
    }) 

    $routeProvider.when("/machines", { 
     controller: "machineController", 
     templateUrl: "/app/views/machines.html", 
    }) 

    $routeProvider.when("/departments", { 
     controller: "departmentController", 
     templateUrl: "/app/views/departments.html", 
    }) 

    $routeProvider.when("/users", { 
     controller: "userController", 
     templateUrl: "/app/views/users.html", 
    }); 

    $routeProvider.otherwise({ redirectTo: "/dashboard" }); 
}); 

и его можно переписать в

var app = angular.module('app', ['ngRoute']); 

app.config(function ($routeProvider) { 
    $routeProvider 
     .when("/dashboard", { controller: "dashboardController", templateUrl: "/app/views/dashboard.html" }) 
     .when("/machines", { controller: "machineController", templateUrl: "/app/views/machines.html" }) 
     .when("/departments", { controller: "departmentController", templateUrl: "/app/views/departments.html" }) 
     .when("/users", { controller: "userController", templateUrl: "/app/views/users.html" }) 
     .otherwise({ redirectTo: "/dashboard" }); 
}); 

Конечно, это только личные предпочтения, он делает то же

+0

Добра, я думал, все, что угодно. Спасибо :) – JohnCooling

+0

Слово 'r' скрывается очень осторожно: D – Shaxrillo

+0

hahah да, я тоже пропустил это –

0

Попробуйте это один

Это просто Опечатка, вместо controller вы поставили contoller на приборной панели

Working Demo

// create the module and name it app 

var app = angular.module('app', ['ngRoute']); 

app.config(function($routeProvider) { 

    $routeProvider.when("/dashboard", { 
    contoller: "dashboardController", 
    templateUrl: "app/views/dashboard.html", 
    }) 

    .when("/machines", { 
    controller: "machineController", 
    templateUrl: "app/views/machines.html", 
    }) 

    .when("/departments", { 
    controller: "departmentController", 
    templateUrl: "app/views/departments.html", 
    }) 

    .when("/users", { 
    controller: "userController", 
    templateUrl: "app/views/users.html", 
    }) 

    .otherwise({ 
    redirectTo: "/dashboard" 
    }); 
}); 


// create the controller and inject Angular's $scope 
app.controller('mainController', function($scope) { 

}); 

// create the controller and inject Angular's $scope 
app.controller('dashboardController', function($scope) { 

}); 

// create the controller and inject Angular's $scope 
app.controller('machineController', function($scope) { 

}); 

// create the controller and inject Angular's $scope 
app.controller('departmentController', function($scope) { 

}); 

// create the controller and inject Angular's $scope 
app.controller('userController', function($scope) { 

}); 
+0

Нет радости, все тот же :( – JohnCooling

+1

@JohnCooling Посмотрите на мой обновленный ответ –

Смежные вопросы