2014-11-05 76 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