2015-09-29 39 views
0

我是AngularJS的新手,並使用plnkr.co學習如何使用angular。我在註冊一個控制器時遇到了一些困難,這個控制器存儲在一個與模塊初始化位置不同的.js文件中。有人可以告訴我爲什麼下面的不行嗎?AngularJS:從單獨的.js文件註冊控制器

index.html文件

<!DOCTYPE html> 
 
<html ng-app="plunker"> 
 

 
<head> 
 
    <meta charset="utf-8" /> 
 
    <title>AngularJS Plunker</title> 
 
    <script> 
 
    document.write('<base href="' + document.location + '" />'); 
 
    </script> 
 
    <link rel="stylesheet" href="style.css" /> 
 
    <script data-require="[email protected]" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.6/angular.min.js" data-semver="1.4.6"></script> 
 
    <script src="app.js"></script> 
 
    <script scr="mainCtrl.js"></script> 
 
</head> 
 

 
<body ng-controller="MainCtrl"> 
 
    <p>Hello {{name}}!</p> 
 
</body> 
 

 
</html>

app.js文件

angular.module('plunker', []);

mainCtrl.js文件

angular.module('plunker') 
 
    .controller('MainCtrl', ['$scope', function($scope) { 
 
    $scope.name = 'GitHub'; 
 
    }]);

對於我來說,這將產生一個參數 'MainCtrl' 不是一個函數,得到了不確定。

+0

以下是鏈接到plunker http://plnkr.co/edit/tpl:8rFfZljYNl3z1A4LKSL2?p=catalogue –

+4

很容易檢查在開發工具的網絡選項卡中看到文件未加載 – charlietfl

回答

1

替換

<script scr="mainCtrl.js"></script> 

<script src="mainCtrl.js"></script> 

因爲錯字的(scr代替src),保持MainCtrl源文件沒有被加載,因此MainCtrl是未定義的。

+2

Typo是一個很好的投票結束問題的原因 –

+0

您是否有任何幫助中心關於該問題的鏈接? –

+0

這幾天我太依賴intellisense :) –