2014-11-05 77 views
1

我在做有关angularjs的教程。一切都很好,直到与路线工作。 我之前搜索过这个问题,但它不适合我。
我正在做的作者键入的代码,但它不工作。放 NG-视图index.html中ng-view不显示路由(angularjs)

<html ng-app="githubViewer"> 
<head> 
    <title>Demo</title> 
    <script type="text/javascript" src="js/angular.min.js"></script> 
    <script type="text/javascript" src="js/angular-route.js"></script> 
    <script type="text/javascript" src="app.js"></script> 
    <script type="text/javascript" src="MainController.js"></script> 
    <script type="text/javascript" src="github.js"></script> 
</head> 
<body> 
    <h1>Github Viewer</h1> 
    <div ng-view=""></div> 
</body> 

app.js

(function() { 
var app = angular.module("githubViewer", ["ngRoute"]); 
app.config(function($routeProvider) { 
    $routeProvider 
      .when("/main", { 
       templateUrl: "main.html", 
       controller: "MainController" 
      }) 
        .otherwise({redirectTo:"/main"}); 
});})();  

MainController.js

(function() { 
var app = angular.module("githubViewer"); 
var MainController = function(
     $scope, $interval, $location) { 
    var decrementCountdown = function() { 
     $scope.countdown -= 1; 
     if ($scope.countdown < 1) { 
      $scope.search($scope.username); 
     } 
    }; 
    var countdownInterval = null; 
    var startCountdown = function() { 
     countdownInterval = $interval(decrementCountdown, 1000, 5, $scope.countdown); 
    }; 
    $scope.search = function(username) { 
     if (countdownInterval) { 
      $interval.cancel(countdownInterval); 
      $scope.countdown = null; 
     } 
    }; 
    $scope.username = "angular"; 
    $scope.countdown = 5; 
    startCountdown(); 
}; 
app.controller("MainController", MainController);})(); 

main.html中

<div> 
{{countdown}} 
    {{username}} 
    <form name="searchUser" ng-submit="search(username)"> 
     <input type="search" required placeholder="usẻname to ind" ng-model="username" /> 
     <input type="submit" value="Search" ng-click="search(username)"> 
    </form> 

github.js

(function() { 

var github = function($http) { 

var getUser = function(username){ 
    return $http.get("https://api.github.com/users/" + username) 
      .then(function(response){ 
       return response.data; 
    }); 
}; 

    var getRepos = function(user){ 
     return $http.get(user.repos_url) 
       .then(function(response){ 
        return response.data; 
     }); 
    }; 

    return{ 
     getUser : getUser, 
     getRepos: getRepos 
    }; 
}; 

var module = angular.module("githubViewer"); 
module.factory("github", github);})(); 

回答

0

你在你的代码中的错误:

var MainController = function($scope, $interval, , $location) { 
        // unnecessary comma here ----^ 

删除逗号(或插入缺少的参数)和你的应用程序应该开始工作。

一般来说,我建议开发人员控制台在编码期间始终保持打开状态。

+0

这是我的错误,当我把这个代码粘贴到那里。在我的来源中,它是正确的。我认为这是关于我正在使用的路线的问题。 – 2014-11-05 09:40:33

+0

问题仍然存在:控制台中是否存在错误? – dfsq 2014-11-05 09:41:17

+0

是的。在MainController.js中,如果我把[]这样:var app = angular.module(“githubViewer”,[]);它没有错误,但ng-view没有显示。如果我像这样删除[](正是作者类型):var app = angular.module(“githubViewer”);它'错误,并链接到这个:https://docs.angularjs.org/error/$injector/unpr?p0=$templateRequestProvider%20%3C-%20$templateRequest%20%3C-%20$route%20% 3C-%20ngViewDirective – 2014-11-05 09:44:26