我尝试从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');
});
使用此代码导航不会发生。在网址中我有一个#符号。使用位置提供程序删除#链接主页将变为黑色。请帮帮我
答案 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'
}
});