2015-05-16 19 views
2

我想創建一個簡單的Angular應用程序,並且我最近在route.js中添加了一個路由器。由於某種原因,協會不是在mainCtrlsomeview.html之間進行的。我之所以知道這是因爲該視圖沒有被注入<div ng-view></div>任何人都知道爲什麼?視圖沒有被注入角

我的文件夾結構如下

root 
------/app 
----------routes.js 
----------/views 
-----------------someview.html 
------/public 
---------mainCtrl.js 
---------index.html 
server.js 

mainCtrl.js

angular.module('LiveAPP',[]) 

.controller('MainCtrl', function($scope) { 
    $scope.Artists = [ 
     {name:"Blink 182",age:14}, 
     {name:"Led Zeppelin",age:12}, 
     {name:"Lil Wayne",age:11} 
    ]; 
    $scope.number = 100; 
}); 

someview.html

<div>{{number}}</div> 

route.js

angular.module('LiveAPP', ['ngRoute']) 

.config(function($routeProvider, $httpProvider) { 
$routeProvider 
    .when('/', { 
    templateUrl : '/views/someview.html', 
    controller : 'MainCtrl' 
    }) 

}); 

的index.html

<!doctype html> 
<html ng-app='LiveAPP'> 
    <head> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"> 
    </script> 
    <link rel="stylesheet" href="http://yui.yahooapis.com/pure/0.6.0/pure-min.css"> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.28//angular-route.min.js"></script> 
    <script src="mainCtrl.js"></script> 
    </head> 
    <body> 
    <div ng-view></div> 
    </body> 
</html> 

server.js

var express = require('express'); 
var app = express(); 

app.use(express.static(__dirname + '/public')); 

app.listen(3000); 

console.log("Listening at 3000") 

回答

1
angular.module('LiveAPP',[]) 
    .controller('MainCtrl', function($scope) { 

在這裏,你定義一個模塊LiveAPP,不依賴於任何其他模塊,並添加一個控制器是模塊。

angular.module('LiveAPP', ['ngRoute']) 
    .config(function($routeProvider, $httpProvider) { 

在這裏,您再次重新定義一個具有相同名稱的模塊,具體取決於ngRoute。但是,由於您正在重新定義它,因此您將有效覆蓋之前定義的模塊及其所有組件。

模塊必須定義一次,且只能定義一次。

我對express沒有太多瞭解,但我也不明白爲什麼所有文件都不在public之下,因爲這顯然是Web服務器所服務的目錄。

+0

經驗教訓。謝謝一堆。 – theamateurdataanalyst