ng-controller:单击链接时没有任何操作

时间:2016-04-07 23:44:37

标签: javascript angularjs ngroute

我为学习目的创建了一个非常简单的angularjs应用程序。在下面的代码中,索引页面加载,但是当我单击地址栏中的URL显然发生变化时点击单击时没有任何反应。

我在Firebug的控制台中没有看到任何错误。

如果在浏览器中查看源代码时单击指向我的JS文件的链接,则会成功检索所有文件。

我还应该注意,在添加控制器之前,我在点击链接时能够在ng-view中看到paris.html或london.html,以便服务器能够找到这些文件。

我是angularjs的新手,无法找到问题所在。任何帮助表示赞赏。

的index.html

<!DOCTYPE html>
<html ng-app="mainApp">
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>


</head>
<body>

    <ol>
        <li><a href="#/cities/paris">Paris</a></li>
        <li><a href="#/cities/london">London</a></li>       
    </ol>

    <div class="content-wrapper" ng-controller="CityController">
        <div ng-view></div> 
    </div>


    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular-route.js"></script>    

    <script src="resources/js/app.js"></script>

    <script src="resources/js/CityController.js"></script>

</body>
</html>

app.js

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

app.config(['$routeProvider', function($routeProvider) {
   $routeProvider.

   when('/cities/paris', {
      templateUrl: 'resources/paris.html', 
      controller: 'CityController'
   }).

   when('/cities/london', {
      templateUrl: 'resources/london.html', 
      controller: 'CityController'
   }).

   otherwise({
      redirectTo: 'resources/london.html'
   });

}]);

CityController.js

var mainApp = angular.module("mainApp", []);

mainApp.controller('CityController', function($scope) {
    $scope.message = "Hello From Controller";
});

paris.html

This is Paris.
<br><br><br>
{{message}}

london.html

This is London.
<br><br><br>
{{message}}

2 个答案:

答案 0 :(得分:1)

您正在此行中再次覆盖该应用

var mainApp = angular.module("mainApp", []);

即。你在这里宣布应用程序两次:

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

在这里

var mainApp = angular.module("mainApp", []);

解决方案可能是,留下这部分 var app = angular.module("mainApp", ['ngRoute']);

然后

app.controller('CityController', function($scope) { $scope.message = "Hello From Controller"; });

由于应用程序可全局访问

答案 1 :(得分:0)

添加到Khaled Awad的答案

CityController.js

中进行更改

&#13;
&#13;
var mainApp = angular.module("mainApp");
&#13;
&#13;
&#13;