Javascript 路由器不工作?以下是我在plunker上的应用程序:http://plnkr.co/edit/JdRB2m0aWjllDcze09S2?p=preview

Javascript 路由器不工作?以下是我在plunker上的应用程序:http://plnkr.co/edit/JdRB2m0aWjllDcze09S2?p=preview,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,我是angularjs的新手,我制作了一个示例应用程序,现在我将ui.router添加到该应用程序中,它没有显示任何内容,甚至连链接都不起作用。 我想提交一个表单并在about.html上显示所有表单数据。 Index.html <!DOCTYPE html> <html ng-app="mylinkApp"> <head> <title>Angular app (Task)</title>

我是angularjs的新手,我制作了一个示例应用程序,现在我将ui.router添加到该应用程序中,它没有显示任何内容,甚至连链接都不起作用。 我想提交一个表单并在about.html上显示所有表单数据。 Index.html

 <!DOCTYPE html>
     <html ng-app="mylinkApp">
     <head>
        <title>Angular app (Task)</title>

      <meta charset="utf-8">

       <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" />
       <link rel="stylesheet" href="//netdna.bootstrapcdn.com/font-awesome/4.0.0/css/font-awesome.css" />
        <link href="css/simple-sidebar.css" rel="stylesheet">
       <script src="http://code.angularjs.org/1.2.13/angular.js"></script>
       <script src="//cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.8/angular-ui-router.min.js"></script> 
       <script src="js/script.js"></script>
        <script src="js/homeDataDirective.js"></script>

      </head>

          <!-- ########################################### -->

        <body ng-controller="mainController">
               <div class="wrapper">
                 <header id="header" class="clear">
                <h1><img src="../Code/img/logo.png" style="width:200px" height="100px"/></h1>
            </header>
           </div>

         <div id="wrapper">

            <!-- Sidebar -->
              <div id="sidebar-wrapper">
                  <ul class="sidebar-nav">
                      <li class="sidebar-brand">
                          <a href="">
                              Quick Links
                          </a>
                      </li>
                      <li>
                          <a href="#home">Home</a>
                      </li>
                      <li>
                          <a href="#about">About</a>
                      </li>
                      <li>
                          <a href="#siteMap">SiteMap</a>
                      </li>

                   </ul>
              </div>
      <div id="page-content-wrapper">
                  <div class="container-fluid">
                      <div >
                           <div ng-view class="jumbotron text-center" style="height:475px"></div>
                      </div>
                  </div>
              </div>


        </div>

     <div id="wrapper">
         <footer id="footer" class="clear">

        <p style="text-align:center">Copyright &copy; 2015 - All Rights Reserved</p>

       </footer>
    </div>
     </body>
     </html>
var mylinkApp=angular.module('mylinkApp',['ui.router']); mylinkApp.config(['$stateProvider','$urlRouterProvider', 函数($stateProvider,$urlRouterProvider){


有谁能指导我如何让ui.router工作吗?

我可以看到一些东西

  • 使用ui路由器时,应使用指令ui视图,而不是ng视图(用于ngRoute)
  • 对于链接,您应该使用ui sref=“stateName”而不是href=“/”,如ui sref=“home”
    • 有一个

      您的代码几乎完美无瑕。我所做的唯一更改是修复了引用文件的错误名称。首先,根文件(由Plunker运行)应为index.html,而不是code/index.html。此外,各州应使用与文件名相关的templateUrl,即:

      .state('home', { 
          url: '/home', 
          templateUrl: '../templates/home.html', 
          ...
                        }) 
      .state('about', { 
          url: '/about', 
          templateUrl: '../templates/about.html', 
          ...
      
      我们需要

      .state('home', { 
          url: '/home', 
          templateUrl: 'Code/templates/home.html', 
          ...
                        }) 
      .state('about', { 
          url: '/about', 
          templateUrl: 'Code/templates/about.html', 
          ...
      
      此外,在传递错误url时使用的重定向应以某些状态的url为目标(而不是模板或根html文件):

      有很多这样的拼写错误。但仅此而已。其余的都正常。请记住-如果我们使用键入
      电子邮件注册:

      <input type="text" class="form-control" ng-model="user.name">
      <input type="email" class="form-control" ng-model="user.email">
      

      检查

      我添加了你所说的内容,但仍然没有显示任何内容OK,如果没有人找到解决方案,我明天会修改plunker!@Radim我们可以只使用一个在指令内的控制器吗?这里不完全确定,你的确切意思是什么,但是…我想说解决方案确实在你的代码中。因为你使用了服务数据持有者。因此,任何人都可以请求它(IoC)并将获得最新的数据。UI路由器控制器用于管理$scopes状态。因此,如果您希望在指令之外呈现结果-我们需要该数据-我们需要该服务。并且状态视图控制器将使其可用于其视图…希望有帮助(我想说的是,控制器对视图是封闭的,服务扮演着单例的好角色)。。。
      .state('home', { 
          url: '/home', 
          templateUrl: 'Code/templates/home.html', 
          ...
                        }) 
      .state('about', { 
          url: '/about', 
          templateUrl: 'Code/templates/about.html', 
          ...
      
      //$urlRouterProvider.otherwise('/index.html'); 
      $urlRouterProvider.otherwise('/home'); 
      
      <input type="text" class="form-control" ng-model="user.name">
      <input type="email" class="form-control" ng-model="user.email">
      
      user name:  me
      user email: me@my.one