javascript - 使用 Angular-route 构建带有 > 1 个斜杠的模板路由时出现问题

标签 javascript angularjs express angular-routing

当我尝试获取类似 "mydomain.com/something/somethingelse" 的路线时,我的 Express+Jade+AngularJS[v1.2.22] 应用程序遇到了问题或"mydomain.com/something/another/last" ...ETC。 (具有一个或多个路径分割)。

发生的情况是,Angular 路由提供程序在这种情况下无法找到要模板化的内容,并且不会在 <div ng-view> 下面渲染任何内容。标记,同时进入导致页面卡住并显示 "WARNING: Tried to load angular more than once" 的循环控制台一遍又一遍地记录。

这是我在 app.js 中的 Angular 模块路由配置:

var advocat = angular.module('advocat', ['ngRoute']).
  config(['$routeProvider', '$locationProvider',
  function($routeProvider, $locationProvider) {
  $routeProvider.
    when('/', {
      templateUrl: 'partials/index.html',
      controller: 'IndexCtrl',
      title: 'Inici'
    }).
    when('/eines/mapa', {
      templateUrl: 'partials/index.html',
      title: 'AB'
    }). 
    otherwise({
      templateUrl: 'partials/404.html',
      title: "Pàgina no trobada"
    });
  $locationProvider.html5Mode(true);
}]);

据我调试,我发现只有当请求的路由具有 templateUrl 时才会出现问题。自页面加载以来尚未使用过。我将尝试以我的 app.js 路由配置为例进行解释:

第一:页面加载,"/whatever"收到请求 -> 页面加载模板 'partials/404.html'因为该路线不匹配任何 .when Angular 用途.otherwise (不会发生错误,因为路线没有分割)。

第二: "/eines/mapa"使用页面中的链接请求 -> 错误(它应该使用 'partials/index.html' 模板作为模板,并且之前没有使用过)。

假设在第二 "/whatever/whatever2"已请求而不是 "/eines/mapa" -> 没有错误,因为它使用 'partials/404.html' 进行模板化( .otherwise ) 并且此模板已在第一个页面加载中使用(在 'partials/404.html' 模板之前已使用过几个请求的情况下也可以使用)。

最佳答案

我发现问题是由 templateUrl 引起的路径,应该是'/partials/index.html'而不是'partials/index.html' .

否则,当 Angular 向服务器发出 HTTP GET 请求以获取模板 HTML 文件时,它会请求相对路径。如果指定的路线类似于 '/example/example2' Angular 将请求 templateUrl在路径 '/example/partials/index.html' ,导致错误。

关于javascript - 使用 Angular-route 构建带有 > 1 个斜杠的模板路由时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25533294/

相关文章:

javascript - 需要 JavaScript/Regex 来挑选和处理 URL

javascript - jQuery - 复选框启用/禁用 - 带数据库

javascript - Angular 指令无法获取子元素?

javascript - 如何使用 express 和 fetch 打印来自服务器的响应?

android - 使用 Node.JS 服务器验证 Android 应用程序检索到的 Google 访问 token

node.js - Express - req.ip 返回 127.0.0.1

javascript - 将类(class)应用于每第 3 个列表项

javascript - AngularJs 从 JSON 对象中提取值并附加到 $scope

angularjs - angular-full stack 是如何像恶魔一样运行的?

javascript - 为什么我在使用 ngrx 进行延迟加载的 Angular 6 应用程序的单元测试中收到 "No provider for ReducerManager!"错误?