【问题标题】:Angularjs ui-view not workingAngularjs ui-view 不起作用
【发布时间】:2018-01-16 19:31:38
【问题描述】:

ui-view 不工作并且没有显示错误。我错过了什么?请帮助我完成这项工作。

这是我的 index.html,它是主模板。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script
src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script
src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<script
src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular-route.js"></script>
<script type="text/javascript" src="app.js"></script>
<script type="text/javascript" src="LoginPage.js"></script>
</head>

<body ng-app="Project">
<div class="mainbox">
    <div class="loginmsg">
        <div class="row text-center">
                <p id="title">
                    <b>Movie Baba</b>
                </p>
        </div>
    </div>
    <div class="row">
        <div ui-view></div>
    </div>
</div>
</body>
</html>

我在脚本标签中包含的 LoginPage.js 是 LoginPage.html

的控制器

app.js 是包含状态的配置文件。

var Project = angular.module('Project', [ 'ui.router' ]);
Project.config(function($stateProvider, $urlRouterProvider) {
        $urlRouterProvider.otherwise('/login');

        $stateProvider.state('login',{
                    url : '/login',
                    templateUrl : 'LoginPage.html',
                    controller : 'LoginCtrl'
            })
    });

以下是我尝试在 index.html

中使用 ui-view 加载/呈现的 LoginPage.html
<div class="row">
  <div class="col-md-3">
    <label>Username : </label>
  </div>
  <div class="col-md-9">
    <input class="form-control" type="text" id="username" ng-model="user.username" name="username" maxlength="50"required>
  </div>
</div>

【问题讨论】:

    标签: javascript html angularjs angular-ui-router angular-routing


    【解决方案1】:

    ngRouteui.router 是不同的库。

    您应该导入正确的脚本:

    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/1.0.3/angular-ui-router.js"></script>
    

    (而不是/angular-route.js

    <!DOCTYPE html>
    <html>
    
    <head>
      <meta charset="UTF-8">
    
      <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
      <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
      <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/1.0.3/angular-ui-router.js"></script>
    </head>
    
    <body ng-app="Project">
      <div class="mainbox">
        <div class="loginmsg">
          <div class="row text-center">
            <p id="title">
              <b>Movie Baba</b>
            </p>
          </div>
        </div>
        <div class="row">
          <div ui-view></div>
        </div>
      </div>
    
    
      <script type="text/ng-template" id="LoginPage.html">
        <div class="row">
          <div class="col-md-3">
            <label>Username : </label>
          </div>
          <div class="col-md-9">
            <input class="form-control" type="text" id="username" ng-model="user.username" name="username" maxlength="50" required>
          </div>
        </div>
      </script>
    
      <script>
        var Project = angular.module('Project', ['ui.router']);
        Project.config(function($stateProvider, $urlRouterProvider) {
          $urlRouterProvider.otherwise('/login');
    
          $stateProvider.state('login', {
            url: '/login',
            templateUrl: 'LoginPage.html'
          })
        });
      </script>
    
    </body>
    
    </html>

    【讨论】:

      【解决方案2】:

      请注意,除了加载 Angular 之外,您还加载了 ui-router:

       <script src="//cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.8/angular-ui-router.min.js"></script>
      

      使用 UI-Router 创建链接时,会使用 ui-sref:例如:

      <body ng-app="Project">
      <div class="mainbox">
          <div class="loginmsg">
              <div class="row text-center">
                      <p id="title">
                          <b>Movie Baba</b>
                      </p>
              </div>
          </div>
       <ul>
              <li><a ui-sref="login">login</a></li>
      
          </ul>
          <div class="row">
              <div ui-view></div>
          </div>
      </div>
      </body>
      

      href 将由此生成,并且您希望 this 指向您的应用程序的某个状态。

      【讨论】:

        猜你喜欢
        • 2015-02-22
        • 2017-09-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-06
        • 2018-06-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多