AngularJS视图呈现问题-空白页

问题描述 投票:0回答:1

我有一个小问题,我的AngularJS应用无法正常运行。 一切似乎都很好...但是当我打开项目页面时,它一片空白...
AngularJS在此页面上可以正常工作,因为我已经检查了简单的示例,该示例出现在页面上。
我尝试了很多解决方案:将id添加到html标记中,将['ngRoute']添加到模块中,但仍然无法正常工作...
这是代码:

test.html

<!DOCTYPE html>
<html ng-app="demoApp" id="demoApp">
  <head>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular.min.js"></script>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular-route.js"></script>
  </head>
  <body>
    <div>
      <!-- placeholder for views -->
      <div ng-view="demoApp">
        <ng-view></ng-view>
      </div>
    </div>
    </script>
    <script>
      var demoApp = angular.module("demoApp", ['ngRoute']);

      demoApp.config(function($routeProvider) {
        $routeProvider.when("#/view1", {
            controller: "SiteController",
            templateUrl: "view1.html"
          });
        $routeProvider.when("#/view2", {
            controller: "SiteController",
            templateUrl: "view2.html"
          });
        $routeProvider.otherwise({ redirectTo: "/view1.html" });
      });

      demoApp.controller("SiteController", function($scope) {
        $scope.customers = [
          { name: 'Piotrek', city: 'Radom' },
          { name: 'Jan', city: 'Cracow' }
        ];

        $scope.addCustomer = function() {
          $scope.customers.push(
            {
              name: $scope.newCustomer.name,
              city: $scope.newCustomer.city
             });
        };
      });
    </script>
  </body>
</html>


view1.html

<div class="container">
  <h2>View 1</h2>
  Name:
  <br />
  <input type="text" data-ng-model="filter.name" />
  <br />
  <ul>
    <li data-ng-repeat="cust in customers | filter:filter.name">
      {{cust.name}} - {{cust.city}}
    </li>
  </ul>
  <br />
  Customer Name:<br />
  <input type="text" data-ng-model="newCustomer.name" />
  <br />
  Customer City:<br />
  <input type="text" data-ng-model="newCustomer.city" />
  <br />
  <button data-ng-click="addCustomer()">Add Customer</button>
  <br />
  <a href="#/view2">View 2</a>
</div>


view2.html

<div class="container">
  <h2>View 2</h2>
  City:
  <br />
  <input type="text" data-ng-model="city" />
  <br />
  <ul>
    <li data-ng-repeat="cust in customers | filter:city">
      {{cust.name}} - {{cust.city}}
    </li>
  </ul>
</div>

有任何想法吗?

html angularjs angularjs-scope
1个回答
0
投票

$routeProvider的配置对我来说似乎很可疑。

  demoApp.config(function($routeProvider) {
    $routeProvider.when("#/view1", {
        controller: "SiteController",
        templateUrl: "view1.html"
      });
    $routeProvider.when("#/view2", {
        controller: "SiteController",
        templateUrl: "view2.html"
      });
    $routeProvider.otherwise({ redirectTo: "/view1.html" });
  });

我敢肯定,你需要从省略# when块和你应该参考的路径,而不是在一个模板otherwise

尝试:

  demoApp.config(function($routeProvider) {
    $routeProvider.when("/view1", {
        controller: "SiteController",
        templateUrl: "view1.html"
      });
    $routeProvider.when("/view2", {
        controller: "SiteController",
        templateUrl: "view2.html"
      });
    $routeProvider.otherwise({ redirectTo: "/view1" });
  });
© www.soinside.com 2019 - 2024. All rights reserved.