Angular JS路由使得无限循环

时间:2016-06-26 19:02:10

标签: javascript python angularjs django

我用

获得了Django服务器

urls.py

urlpatterns = [
  url('^', IndexView.as_view(), name='index')
]

着陆/ urls.py

urlpatterns = [
  url(r'^admin/', admin.site.urls),
  url('^.*', include("landing.urls"))
]

views.py

class IndexView(TemplateView):
template_name = 'landing/header.html'

def get_context_data(self, **kwargs):
    context = super(IndexView, self).get_context_data(**kwargs)
    context['meals'] = get_data()

    return context

header.html

<html lang="en" ng-app="KolyadaApp">

<div ng-view></div>
<a class="navbar-brand" ng-href="/landing">landing</a>
<a ng-href="#/menu">menu</a>
<a ng-href="#/week">week</a>

app.js

'use strict';

/* Controllers */
var KolyadaApp = angular.module('KolyadaApp', ['ngRoute',    'ngResource']);

angular.
  module('KolyadaApp').
  config(['$locationProvider', '$routeProvider', '$interpolateProvider',
    function config($locationProvider, $routeProvider, $interpolateProvider) {
    $interpolateProvider.startSymbol('{$');
    $interpolateProvider.endSymbol('$}');

    $routeProvider.
        when('/', {
            templateUrl: function(route) {

                console.log(route);

                return '/';
            }
        }).
        when('/menu', {
          templateUrl: '/menu.html'
        }).
        when('/week', {
          templateUrl: '/week.html'
        }).
        otherwise('/', {
            redirectTo:'/'
        });
}
]);

我得到的:加载页面后,我无法对链接执行任何操作,控制台日志会定期告诉我有关调用堆栈溢出的信息。并且很难关闭标签。

好吧,经过一段时间的搜索回答,然后放置&#39; /&#39;我无处不在,我决定问你。请告诉我哪里错了。

谢谢。

1 个答案:

答案 0 :(得分:1)

这是你的问题,我相信:

urls.py

urlpatterns = [
  url('^', IndexView.as_view(), name='index')
]

着陆/ urls.py

urlpatterns = [
  url(r'^admin/', admin.site.urls),
  url('^.*', include("landing.urls"))  # Circular reference
]

每次加载landing.urls时,您都会在include标记内重新加载landing/urls.py

您的意思是{@ 1}}中的那一行吗?如果是这样,您将需要更改其中一个或两个,以便它们不会发生冲突(即urls.py^都匹配空字符串)。