Angular JS中的$ location.path不起作用

时间:2014-07-03 15:21:18

标签: angularjs

我知道这个问题已被多次询问,在完成回复并在我的代码中进行更改之后,我仍然无法通过按下按钮打开不同的页面。我刚开始使用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');
        });

    };
  });

谢谢和问候,

3 个答案:

答案 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';