我知道这个问题已被多次询问,在完成回复并在我的代码中进行更改之后,我仍然无法通过按下按钮打开不同的页面。我刚开始使用Angular JS,所以有人可以帮我一下吗? (网址中的地址发生变化但页面未显示)
CODE:
的index.html
<!doctype html>
<html ng-app="testAngularApp" class="no-js">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<!-- Add your site or application content here -->
<div ng-controller="MainCtrl">
<button ng-click="testButton()"> Page Change</button>
</div>
<script src="bower_components/angular/angular.js"></script>
<!-- endbower -->
<!-- endbuild -->
<script src="scripts/app.js"></script>
<script src="scripts/controllers/main.js"></script>
</body>
</html>
app.js
'use strict';
/**
*
* Main module of the application.
*/
angular
.module('testAngularApp', [])
.config(function($locationProvider){
$locationProvider.html5Mode(true);
});
main.js
'use strict';
/**
* @ngdoc function
* @name testAngularApp.controller:MainCtrl
* @description
* # MainCtrl
* Controller of the testAngularApp
*/
angular.module('testAngularApp')
.controller('MainCtrl', function ($timeout, $log, $location, $scope) {
$scope.testButton = function(){
// Testing the opening of different page.
$log.info($location.path());
$timeout(function () {
$location.path('/views/Dummy.html');
});
};
});
谢谢和问候,
答案 0 :(得分:0)
请将ngRoute注入您的应用,不要伪造添加和引用脚本angular-route.js
angular
.module('testAngularApp', ['ngRoute'])
.config(function($locationProvider){
$locationProvider.html5Mode(true);
});
并在你的控制器中
$location.path('/path'); <- path has to be defined in your app.config ...(ie .when(/path..)not just path to html file
答案 1 :(得分:0)
你的$ timeout没有延迟时间的值。你需要在功能之后提供它。
$timeout(function () {
$location.path('/views/Dummy.html');
}, 1);
答案 2 :(得分:0)
更改浏览器URL时,(网址中的地址发生变化但页面未显示)
$location不会导致整页重新加载。要在更改URL后重新加载页面,请使用较低级别的API $ window.location.href。
$window.location.href = '/views/Dummy.html';