N
N
Nikolay Erofeev2014-12-28 16:26:32
JavaScript
Nikolay Erofeev, 2014-12-28 16:26:32

Why doesn't routing work in angulaJs?

in general, you need a page where the user could log in site.com/login, but the main page is rendered, here is the code

var app = angular.module('mainApp', ['ngRoute']).config(function($routeProvider){
      $routeProvider.when('/login', {
        templateUrl: './login.html',
        controller: 'mainContr'
      });
    });

and the code itself in html, the controller and the module distributions are written in the html tag.
render
<div ng-view></div>
What am I doing wrong?

Answer the question

In order to leave comments, you need to log in

2 answer(s)
M
Maxim Dunayevsky, 2014-12-28
@Mackaybravo

When the application is initialized, is ngRoute exactly imported ? Is the angular-route plugin connected to the page? By the way, there is also the angular-router plugin , it is not working, as far as I know. Is the path exactly '/login' and not '/login/' ?
Just in case, my example of using ngRoute, fully working:

(function(A) {
    "use strict";
    A.module('Administrator',
        [ 'ngCookies', 'ngRoute', 'ngResource', 'ui.layout', 'ui.bootstrap',
        'ui.bootstrap.dropdown', 'ui.bootstrap.modal', 
        'ui.bootstrap.collapse', 'ui.grid', 'ui.grid.selection',
        'ui.grid.resizeColumns', 'ui.grid.autoResize',
        'ui.grid.selection', 'ui.grid.i18n', 'ui.layout',
        'ui.grid.infiniteScroll'])
    .config(function($interpolateProvider, $resourceProvider, $routeProvider) {
        //Не хочу использовать Django-тег verbose
        $interpolateProvider.startSymbol('{$');
        $interpolateProvider.endSymbol('$}');
        $resourceProvider.defaults.stripTrailingSlashes = false;//Иначе POST-запросы не работают, Django же

        $routeProvider.when('/category/', {
            templateUrl: '/administrator/template/grid/',
            controller: 'CategoryGridController'
        }).when('/tests/', {
            templateUrl: '/administrator/template/grid/',
            controller: 'TestsGridController'
        });
    })
    .run(function($http, $cookies) {
        $http.defaults.headers.post['X-CSRFToken'] = $cookies.csrftoken;
        $http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
        $http.defaults.headers.common['X-CSRFToken'] = $cookies.csrftoken;
    });
}(this.angular, this.jQuery));

S
Sergey Romanov, 2014-12-28
@Serhioromano

1. Проверте что вы используюете ngRoute а не ui.router
2. Убедитесь что яваскрипт файл включен на страницу
3. По коду не понятно есть у вас метод контроллера mainContr или нет. Понятно что вы в HTML написали тоже но объявили вы этот кнороллер в Ангуляр или нет не известно.
4. Убедитесь что у вас есть функция run() как в примере вверху
5. Путь к файлу шаблона не надо использовать ./ так как этот путь будет использоваться через HTTP. Просто укажите относительный или полный путь от корня сайта но тогда нанчните с /.
Если вы сделаете фидл и дадите ссылку то будет на много легче помочь.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question