登录重定向后未触发$ routeProvider

时间:2015-02-27 23:36:32

标签: django angularjs angularjs-routing

我有一个基本的Django应用程序(Django 1.7)和一个使用基本路由的AngularJS(1.2.19)前端。首次访问站点时,路由正确加载并在ng-view中显示内容。但是,如果我进入/ login并成功登录该站点(默认的Django登录页面),我将被重定向到主页,并且无法在ng-view中加载路由。我必须重新加载页面(通常是两次)或清除缓存以获取我的ng-view中的内容以加载。即使单击模板中的链接也无法显示ng-view内容。如何在重定向后强制在ng-view中加载内容?

home.html的

<html>
  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular-route.js"></script>
  </head>
  <body ng-app="testyApp">
    <h1>Routing Test</h1>
    <ul>
      <li><a href="#/">Default</a></li>
      <li><a href="#/test">Other</a></li>
    </ul>

    <div ng-view></div>

    <script type="text/javascript" src="/static/main.js"></script>
  </body>
</html>

main.js

angular.module('testyApp', ['ngRoute'])
  .config(['$routeProvider', function($routeProvider) {
    $routeProvider.when('/', {
      template:'<h3>Home page</h3>'
    })
    .when('/test', {
      template:'<h3>Other page</h3>'
    })
    .otherwise({redirectTo: '/'});
  }]);

我不认为这些文件是必要的,但在这里它们只是以防万一。

urls.py

from django.conf.urls import patterns, include, url
from app_test.views import home

urlpatterns = patterns('',
    url(r'^$', 'app_test.views.home', name='home'),
    url(r'^login/$', 'django.contrib.auth.views.login', {
            'template_name': 'login.html'}),
)

views.py

from django.shortcuts import render


def home(request):
    return render(request, 'home.html')

的login.html

{% extends 'base.html' %}
{% block header_text %}Login{% endblock %}
{% block content %}
<form name="loginForm" 
      method="post" 
      action="{% url 'django.contrib.auth.views.login' %}">
    {% csrf_token %}
    {% for field in form %}
    <div>
      {{ field.label_tag }}
      <br>
      {{ field }}
    </div>
    {% endfor %}
    <div>
      <input type="submit" 
             value="Login"
             id="id_submit">
    </div>
</form>
{% endblock %}

更多信息: 在进行了一些深入测试后,使用Chrome作为我的测试浏览器似乎是孤立的问题。使用Firefox和Safari(未测试Opera),ng-view会在登录页面重定向后按预期加载。我不知道为什么会这样。任何解释都将不胜感激。

0 个答案:

没有答案
相关问题