2017-05-18 78 views
1

我一直在試圖學習Angular 1的最近幾天。這是我第一次進入任何MVC框架,所以請原諒我,如果這對你們一些更有經驗的人來說顯而易見。

我正在關注YouTube上的教程,但我遇到了一個我無法真正理解的錯誤。

Error: [$injector:modulerr] http://errors.angularjs.org/1.6.4/ $injector/modulerr?p0=ngPortfolio&p1=Erro…ogleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.6.4%2Fangular.min.js%3A41%3A476)

我試着用搜索引擎的問題,但我無法閱讀其他人的代碼,並試圖把它與我自己的問題(他們看起來比我的方式更先進)。

在繼續之前,我應該提到,我首先遵循了一個教程,將所有內容放在一個頁面上,然後我再回到自己嘗試添加某種功能導航,因此爲什麼我的HTML看起來像是點到處都是。

這裏就是我有這麼遠

的Index.html

<!DOCTYPE html> 
 
<html lang="en"> 
 
<head> 
 
    <meta charset="UTF-8"> 
 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
 
    <meta http-equiv="X-UA-Compatible" content="ie=edge"> 
 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 
 
    <title></title> 
 
</head> 
 
<body > 
 
    <div class="container" ng-app="ngPortfolio" ng-controller="portfolioController"> 
 
     <div ng-include="'templates/nav.html'"></div> 
 
     <div ui-view> 
 

 
     </div> 
 
     <!-- Main component for a primary marketing message or call to action --> 
 
     <div class="jumbotron" ng-repeat="asset in assets"> 
 
     <img ng-src="{{asset.image}}" alt="{{asset.name}}"> 
 
     <p>{{asset.welcome}}</p> 
 
     </div> 
 

 
     <div class="well" ng-repeat="project in projects"> 
 
     <h1>{{ project.name }}</h1> 
 
     <img ng-src="{{ project.image }}" alt="{{ project.name }}"> 
 
     <p>{{ project.description }}</p> 
 
     <a href="{{ project.url }}">View</a> 
 
     </div> 
 
    </div> <!-- /container --> 
 
</body> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.js" charset="utf-8"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/1.0.3/angular-ui-router.min.js" charset="utf-8"></script> 
 
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha256-k2WSCIexGzOj3Euiig+TlR8gA0EmPjuc79OEeY5L45g=" crossorigin="anonymous"></script> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" charset="utf-8"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/2.5.0/ui-bootstrap.min.js" charset="utf-8"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/2.5.0/ui-bootstrap-tpls.min.js" charset="utf-8"></script> 
 
<script src="app.js" charset="utf-8"></script> 
 
<script src="scripts/portfolioController.js" charset="utf-8"></script> 
 
<script src="scripts/assetFactory.js" charset="utf-8"></script> 
 
<script src="scripts/portfolioFactory.js" charset="utf-8"></script> 
 
</html>

nav.html

<!-- Static navbar --> 
 
<nav class="navbar navbar-default"> 
 
    <div class="container-fluid"> 
 
    <div class="navbar-header"> 
 
     <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> 
 
     <span class="sr-only">Toggle navigation</span> 
 
     <span class="icon-bar"></span> 
 
     <span class="icon-bar"></span> 
 
     <span class="icon-bar"></span> 
 
     </button> 
 
     <a class="navbar-brand" href="#">fabio-felizzi.com</a> 
 
    </div> 
 
    <div id="navbar" class="navbar-collapse collapse"> 
 
     <ul class="nav navbar-nav"> 
 
     <li class="active"><a href="#">Home</a></li> 
 
     <li><a href="#">About</a></li> 
 
     <li><a href="#">Projects</a></li> 
 
     <li><a href="#">CV</a></li> 
 
     <li><a href="#">Contact</a></li> 
 
     <li class="dropdown"> 
 
     <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Change Versions <span class="caret"></span></a> 
 
     <ul class="dropdown-menu"> 
 
      <li><a href="#">Angular 2</a></li> 
 
      <li><a href="#">Angular 4</a></li> 
 
      <li><a href="#">React</a></li> 
 
      <li><a href="#">Classic</a></li> 
 
     </ul> 
 
     </li> 
 
     </ul> 
 
    </div><!--/.nav-collapse --> 
 
    </div><!--/.container-fluid --> 
 
</nav>

app.js

angular.module('ngPortfolio', ['ui.router','ui.bootstrap']) 
 
    .config(['$urlRouterProvider', '$stateProvider'], function($urlRouterProvider, $stateProvider) { 
 
     $urlRouterProvider.otherwise('/'); 
 
    })

portfolioController.js

angular 
 
    .module('ngPortfolio') 
 
    .controller('portfolioController', function($scope, assetFactory, portfolioFactory) { 
 
     $scope.projects; 
 

 
     portfolioFactory.getProjects().then(function(data) { 
 
     $scope.projects = data.data; 
 
     }, function(error) { 
 
     console.log(error); 
 
     }); 
 

 
     assetFactory.getAssets().then(function(data) { 
 
     $scope.assets = data.data; 
 
     }, function(error) { 
 
     console.log(error); 
 
     }); 
 
    });

portfolioFactory.js

angular 
 
    .module('ngPortfolio') 
 
    .factory('portfolioFactory', function($http) { 
 

 
     function getProjects() { 
 
     return $http.get('data/projectData.json'); 
 
     } 
 
     return { 
 
     getProjects: getProjects 
 
     } 
 
    });

assetFactory.js

angular 
 
    .module('ngPortfolio') 
 
.factory('assetFactory', function($http) { 
 

 
    function getAssets() { 
 
    return $http.get('data/assetData.json'); 
 
    } 
 
    return { 
 
    getAssets: getAssets 
 
    } 
 
});

+0

你的控制器在哪裏? ** portfolioController.js **這一個。我有一種感覺,你沒有顯示完整的代碼。 – ZombieChowder

+0

對不起,我現在也添加了該文件。 – pragmatic84

+0

你顯然缺少一個模塊,問題是哪一個。你有沒有包含你使用的所有腳本? \t 如果您不確定哪個模塊丟失,請使用非縮小的angular.js,它會提供可讀的錯誤消息。 – ZombieChowder

回答

0

感謝您的幫助。問題是waaaaay更基本。

這是原始的應用程序。JS

angular.module('ngPortfolio', ['ui.router','ui.bootstrap']) 
 
    .config(['$urlRouterProvider', '$stateProvider'], function($urlRouterProvider, $stateProvider) { 
 
     $urlRouterProvider.otherwise('/'); 
 
    })

,這裏是固定的版本

angular.module('ngPortfolio', ['ui.router','ui.bootstrap']) 
 
    .config(['$urlRouterProvider', '$stateProvider', function($urlRouterProvider, $stateProvider) { 
 
     $urlRouterProvider.otherwise('/'); 
 
    }])

爲了節省你不必去通過每個人物,我必須附上一切.config()方括號內,而不僅僅是$ urlRouterProvider和$ statePr ovider。我認爲這個函數是在數組之後出現的。

相關問題