按钮单击时Angularjs路由不起作用

时间:2018-05-16 17:46:43

标签: angularjs angularjs-ng-route

我一直在尝试创建一个angularjs应用程序,我想在按钮点击时路由到不同的html页面。但由于某些未知的原因而无法正常工作。

我的HTML代码

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

  <head>
    <script data-require="angular.js@*" data-semver="1.3.0-beta.5" src="https://code.angularjs.org/1.3.0-beta.5/angular.js"></script>
     <script data-require="angular.js@*" data-semver="1.3.0-beta.5" src="https://code.angularjs.org/1.3.0-beta.5/angular-route.js"></script>
     <link rel="stylesheet" href="style.css" />
    <script src="script.js"></script>
  </head>

<body ng-controller="Controller">
<h1>Plunkr Example</h1>
  <button ng-click="changeview()">ClickMe</button>
  <h1>MainPage</h1>
</body>
</html>

我的代码

var app = angular.module("app", ['ngRoute'])

app.config(['$locationProvider', function($locationProvider) {
  $locationProvider.hashPrefix('');
}]);

app.config(['$routeProvider',
  function ($routeProvider) {
      $routeProvider.
        when('/Details', {
            templateUrl: 'details.html'
        }).
        when('/Main', {
             templateUrl: 'main.html'
         }).
        otherwise({
            redirectTo: '/Main'
        });
  }]);

app.controller("Controller", function($scope,$routeParams,$location){
  //$scope.ProductId = $routeParams.id;
  $scope.changeview = function () {
        console.log('in function changeview');
        $location.path('/Details');
    }
})

这是我的plunkr

请帮忙。

2 个答案:

答案 0 :(得分:3)

您错过了添加ng-view指令。需要包含它才能使路由能够呈现模板

<div ng-view></div>

工作plunker

答案 1 :(得分:2)

您需要在index.html

中使用ng-view指令
 <div class="viewWrapper">
        <div ng-view></div>
</div>

<强> WORKING DEMO