ng-view 不会显示模板

ng-view won't display template

我一直在使用 Angular 并尝试实现简单的路由。 我有一个基本的 HTML,其中包含对所有必需脚本的引用和一个 ng-view 标记。

出于某种原因,加载页面时,模板未显示在 ng-view 位置。为什么不显示,如何解决?

<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular-route.js"></script>
    <script src="routCtrl.js"></script>
</head>
<body ng-app='ngRouteTest'>
    <div ng-view></div>
</body>

和脚本文件:

var ngRouteTest = angular.module('ngRouteTest',['ngRoute']);
ngRouteTest.config(function($routeProvider){
    $routeProvider
.when('/', 
     {templateUrl : '/routView1.html'})
});

您需要重定向到该页面,以便路由会知道在 ng-view 指令中呈现哪个页面。

有多种方法可以实现。

  1. 再定义一个 otherwise 重定向到 /.

    $routeProvider.otherwise({redirectTo: '/'})
    
  2. 将锚点添加到将重定向到 / 的页面。

    <body ng-app='ngRouteTest'>
        <a href="#/">Home Page</a>
        <div ng-view></div>
    </body>
    
  3. <head> 标签的页面上有默认值 url。

    <base href="/"/>
    

启动本地主机并从那里破坏代码后,它工作得很好。

当您进行本地 ajax 调用时,问题与 chrome 相关的安全性有关。

所以遇到这个问题应该做以下事情之一:

1.Disable chrome 中的网络安全。 2.Start 要测试的本地主机。

好的,首先您需要从服务器 运行 您的代码,因此要在本地测试它,请使用 http-server,这非常容易准备。

然后您需要更改您的 templateUrl 路径:

{templateUrl : '/routView1.html'}

至:

{templateUrl : './routView1.html'}