AngularJS NgRoute - Url 更改但视图未呈现,没有错误
AngularJS NgRoute - Url Changes But view doesnt render,No errors
appscript.js
var myApp=angular.module('myApp',['ngRoute']);
myApp.config([$routeProvider,function($routeProvider) {
$routeProvider
// route for the home page
.when('/home', {
templateUrl: 'home.html',
controller: 'homeController'
})
// route for the about page
.when('/services', {
templateUrl: 'services.html',
controller: 'servicesController'
})
// route for the contact page
.when('/contacts', {
templateUrl: 'contacts.html',
controller: 'contactsController'
})
.otherwise({ redirectTo: '/services' });
}
]);
index.html
<!doctype html>
<html ng-app="myApp">
<head >
<script src="appscript.js"></script>
<link href="Styles/Styles.css" rel="stylesheet">
<script src="homeController.js"></script>
<script src="servicesController.js"></script>
<script src="contactsController.js"></script>
<script src="aboutController.js"></script>
<script src="clientsController.js"></script>
<script src="angular-route.min.js"></script>
<script src="angular.min.js"></script>
</head>
<body >
<div class="header" > <h2 style="color:blue;">Training Institute</h2>
</div>
<div class="nav">
<a href="#/home">Home</a>
<a href="#/about">About</a>
<a href="#/services">Services</a>
<a href="#/clients">Clients</a>
<a href="#/contacts">Contact</a>
</div>
<div class="content" >
<ng-view> </ng-view>
</div>
<div class="footer">footer</div>
</body>
</html>
homeController.js
angular.module('myApp').controller('homeController',function($scope)
{
$scope.message="i am in home controller";
}
);
home.html
<div>i am in home partial template</div>
我搜索了相关问题并做了很多更改,但仍然无法在 view.The 中加载部分模板 url 已更改但视图未更新。
我将所有代码文件放在 index.html 所在的相同位置,以确保问题不是因为路径不正确。
我创建了一个 plunkr 来重现和解决你的问题,你可以在这里找到它:https://plnkr.co/edit/oTB6OMNNe8kF5Drl75Wn?p=preview(注意:只有家庭、服务和联系人有效,因为这些是你的代码中唯一配置的路由所以其余的回落到 otherwise
)
中指定的路线
您的代码有两个问题:
你的文件顺序不对,应该是:
<script src="angular.min.js"></script>
<script src="angular-route.min.js"></script>
<script src="appscript.js"></script>
<script src="homeController.js"></script>
<script src="servicesController.js"></script>
<script src="contactsController.js"></script>
<script src="aboutController.js"></script>
<script src="clientsController.js"></script>
您使用的是 AngularJS 1.6,为了使用路由确保阅读我的回答:
长话短说:从 AngularJS 1.6 开始,hashPrefix
的默认值为 !
。由于您没有使用它,您要么必须使用它,要么使用 $locationProvider.hashPrefix('')
将其重置为 ''
。由于此提交,此更改自 AngularJS 1.6 引入:https://github.com/angular/angular.js/commit/aa077e81129c740041438688dff2e8d20c3d7b52
注意:如果这仍然不能帮助您,我们可能需要更多信息,因为我们不知道所有这些 js 文件的内容是什么。在这种情况下,请随时更新我的 plunkr 以重现您的问题。
appscript.js
var myApp=angular.module('myApp',['ngRoute']);
myApp.config([$routeProvider,function($routeProvider) {
$routeProvider
// route for the home page
.when('/home', {
templateUrl: 'home.html',
controller: 'homeController'
})
// route for the about page
.when('/services', {
templateUrl: 'services.html',
controller: 'servicesController'
})
// route for the contact page
.when('/contacts', {
templateUrl: 'contacts.html',
controller: 'contactsController'
})
.otherwise({ redirectTo: '/services' });
}
]);
index.html
<!doctype html>
<html ng-app="myApp">
<head >
<script src="appscript.js"></script>
<link href="Styles/Styles.css" rel="stylesheet">
<script src="homeController.js"></script>
<script src="servicesController.js"></script>
<script src="contactsController.js"></script>
<script src="aboutController.js"></script>
<script src="clientsController.js"></script>
<script src="angular-route.min.js"></script>
<script src="angular.min.js"></script>
</head>
<body >
<div class="header" > <h2 style="color:blue;">Training Institute</h2>
</div>
<div class="nav">
<a href="#/home">Home</a>
<a href="#/about">About</a>
<a href="#/services">Services</a>
<a href="#/clients">Clients</a>
<a href="#/contacts">Contact</a>
</div>
<div class="content" >
<ng-view> </ng-view>
</div>
<div class="footer">footer</div>
</body>
</html>
homeController.js
angular.module('myApp').controller('homeController',function($scope)
{
$scope.message="i am in home controller";
}
);
home.html
<div>i am in home partial template</div>
我搜索了相关问题并做了很多更改,但仍然无法在 view.The 中加载部分模板 url 已更改但视图未更新。
我将所有代码文件放在 index.html 所在的相同位置,以确保问题不是因为路径不正确。
我创建了一个 plunkr 来重现和解决你的问题,你可以在这里找到它:https://plnkr.co/edit/oTB6OMNNe8kF5Drl75Wn?p=preview(注意:只有家庭、服务和联系人有效,因为这些是你的代码中唯一配置的路由所以其余的回落到 otherwise
)
您的代码有两个问题:
你的文件顺序不对,应该是:
<script src="angular.min.js"></script> <script src="angular-route.min.js"></script> <script src="appscript.js"></script> <script src="homeController.js"></script> <script src="servicesController.js"></script> <script src="contactsController.js"></script> <script src="aboutController.js"></script> <script src="clientsController.js"></script>
您使用的是 AngularJS 1.6,为了使用路由确保阅读我的回答:
长话短说:从 AngularJS 1.6 开始,hashPrefix
的默认值为 !
。由于您没有使用它,您要么必须使用它,要么使用 $locationProvider.hashPrefix('')
将其重置为 ''
。由于此提交,此更改自 AngularJS 1.6 引入:https://github.com/angular/angular.js/commit/aa077e81129c740041438688dff2e8d20c3d7b52
注意:如果这仍然不能帮助您,我们可能需要更多信息,因为我们不知道所有这些 js 文件的内容是什么。在这种情况下,请随时更新我的 plunkr 以重现您的问题。