它没有加载 Angular 中的视图

It's not loading the views in Angular

我有一个空的 MVC 项目,但是我确实有一个名为 MyViews 并包含 html(view1.html 和 view2.html)的文件夹,而脚本html 位于主项目文件夹下(位置在 global.asax 文件下方)。

<html data-ng-app="App">

<head>
  <title></title>
</head>

<body>
  <div>
    <div data-ng-view=""></div>
    <input type="text" name="txtName" data-ng-model="typedName" />
    <br />Typed Name is: {{ typedName }}
    <br />Names:
    <ul>
      <li data-ng-repeat="person in Customers | orderBy:'name' |  filter:typedName ">{{ person.name | uppercase}} - {{ person.city }}
      </li>
    </ul>
  </div>
  <script src="Scripts/angular.min.js"></script>
  <script>
    angular.module('App', []).config(function($routeProvider) {
        $routeProvider
          .when('/View1', {
            controller: 'Fir',
            templateUrl: '/MyViews/View1.html'
          })
          .when('/View2', {
            controller: 'Fir',
            templateUrl: '/MyViews/View2.html'
          })
          .otherwise({
            redirectTo: '/View1'
          });
      })
      .controller('Fir', function($scope) {
        $scope.Customers = [{
          name: 'Kiam',
          city: 'Los Angeles'
        }, {
          name: 'Se',
          city: 'Los Vegas'
        }]
      });
  </script>
</body>

</html>
​

为什么没有加载视图? :(

您能检查一下您的 MyViews 文件夹是否与您的 JavaScript 文件位于同一路径吗?

此外,请尽量避免以 / 开头的路径,这表示来自应用程序 root 的路径。

templateUrl 路径必须相对于被调用的 JavaScript 文件。

app/
    main.js
    MyViews/
        View2.html

您正在尝试使用 angular 路由模块 ngRoute,但您从未真正将其包含在您的页面中。

您需要进行两处更改才能使此代码正常工作;首先,您需要在您的页面上加载 ngRoute 模块,当然,您的 Scripts 目录中也有可用的模块。即

<script src="Scripts/angular.min.js"></script>
<script src="Scripts/angular-route.js"></script>

其次,您需要在应用程序的模块依赖项中包含 ngRoute,如下所示:

angular.module('App', ['ngRoute']).config(function($routeProvider) {

正如我之前向您提到的,您不能按照一个两年前的视频指南并期望它能与当前版本的 angular 一起正常工作。已经有 许多 重大更改,包括这种情况,其中 angular 路由模块被移动到它自己的文件中。