无法在angularjs中导航页面

时间:2016-05-20 10:20:41

标签: angular-ui-router angularjs-routing

我尝试从aangularjs页面导航到另一个页面,但它不起作用。

我的nodejs文件是

-night

My Angularjs第1页

app.get('/signup', function(req, res, next) {
    res.sendFile(path.join(__dirname, '../public/templates', 'test.html'));
    });

module.exports = app;

我的控制器

 <!DOCTYPE html>
<html  ng-app="signApp">
<head>

</head>
<body ng-controller="signCtrl" ui-view="content">    

    <a ui-sref="home">Home</a>
</body>

<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>  
<script src="/controller/test.js"></script>

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

</html>

我的另一页是

var app = angular.module('signApp', ['ui.router']);

  app.config(function($stateProvider) {
      //$locationProvider.html5Mode(true);
      $stateProvider
         .state('home', {
             url: 'home',
             views: {
               'content@': {
                 templateUrl: 'templates/register.html',
                 controller: 'signCtrl'
               }
             }
           });

   });

  app.controller('signCtrl', function($scope, $state) {
      $state.go('home');
  });

使用此代码导航不会发生。在网址中我有一个#符号。使用位置提供程序删除#链接主页将变为黑色。请帮帮我

1 个答案:

答案 0 :(得分:0)

首先,在您的控制器中,您忘记添加&#39; /&#39;到网址:

var app = angular.module('signApp', ['ui.router']);

  app.config(function($stateProvider) {
      //$locationProvider.html5Mode(true);
      $stateProvider
         .state('home', {
             url: '/home',
             views: {
               'content@': {
                 templateUrl: 'templates/register.html',
                 controller: 'signCtrl'
               }
             }
           });
   });

  app.controller('signCtrl', function($scope, $state) {
      $state.go('home');
  });

我注意到的第二件事是不对的是你的第二个模板包含

<!DOCTYPE html>
<html ng-app="signApp">
<head>

</head>
<body ng-controller="signCtrl"> 

您不需要这一切,只需要在进入视图后添加到页面中的内容。

第三件事是你应该定义两个独立的状态&#39; home&#39;和&#39; home.register&#39;

    .state('home.register', {
        parent: 'home',
        url: '/signup',
        views: {
            '@home': {
                template: 'your template path '

            }
        }
    })
    .state('home', {
        url: '/home',
        views: {

                template: 'your home template'


        }
    });