2016-05-20 8 views
1

Ich habe versucht, von aangularjs Seite zu einer anderen Seite zu navigieren, aber es funktioniert nicht.nicht in der Lage, in angularjs zu navigieren

Meine NodeJS Datei ist

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

module.exports = app; 

Meine AngularJS Seite 1

<!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> 

Mein Controller

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

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

    }); 

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

Meine andere Seite ist

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

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

    <form ng-submit="regForm()"> 
     <br> user name: 
     <input type="text" ng-model="user.name"> 
     <br> 
     <br> password: 
     <input type="text" ng-model="user.password"> 
     <br>  
     <input type="submit" value="Submit"> 
    </form> 

</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> 

mit dieser Code-Navigation nicht passieren. In URL habe ich ein # Zeichen. Während der Verwendung von Location Provider zum Entfernen # der Link nach Hause wird schwarz. Bitte helfen Sie mir

Antwort

0

Zuerst in Ihrem Controller vergessen haben, ‚/‘ an die URL hinzuzufügen:

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

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

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

Die zweite Sache, bemerkte ich, das ist nicht richtig, dass Ihre zweite Vorlage enthält

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

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

Sie brauchen nicht alles, Sie brauchen nur die Dinge, die Sie Ihrer Seite hinzufügen, sobald Sie zu Ihrer Ansicht gehen.

Die dritte Sache ist, dass Sie zwei getrennte Staaten ‚zu Hause‘ definieren sollte und ‚home.register‘

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

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

       template: 'your home template' 


     } 
    }); 
Verwandte Themen