2013-03-30 34 views
15

jsFiddle of the code爲什麼這個Angular控制器拋出「Error:Unknown provider:nProvider < - n」?

<div ng-app=""> 
    <div ng-controller="FirstCtrl"> 
     <input type="text" ng-model="data.message" /> 
     {{data.message + " world"}} 
    </div> 
</div> 

function FirstCtrl($scope) { 
    $scope.data = { 
     message: "Hello" 
    }; 
} 

我剛開始使用上Egghead.io視頻瞭解角。繼我一直卡在2nd video where John discusses controllers。它在他的視頻中工作,在我的機器上失敗。

代碼是如此基本的我無法弄清楚什麼是引發此錯誤:

> Error: Unknown provider: nProvider <- n 
>  at Error (<anonymous>) 
>  at http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.3/angular.min.js:29:36 
>  at Object.c [as get] (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.3/angular.min.js:26:310) 
>  at http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.3/angular.min.js:29:121 
>  at c (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.3/angular.min.js:26:310) 
>  at d (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.3/angular.min.js:26:444) 
>  at Object.instantiate (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.3/angular.min.js:28:80) 
>  at http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.3/angular.min.js:51:512 
>  at http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.3/angular.min.js:43:67 
>  at n (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.3/angular.min.js:7:43) 

如果我使用谷歌的CDN,以及(從錯誤該錯誤被拋出,我想也許這是cdn的錯誤)。

回答

2

至於你的小提琴去,如果您更改「的onLoad」到AngularJS使用「不循環 - 在」 <頭>'或‘不循環 - 在<體>’,它會正常工作。

2

在小提琴演示中唯一的問題是設置代碼在負載處理程序中運行。當它試圖解析DOM

工作版本

Anguar無法找到你的控制器功能,只需更改onload在左上

http://jsfiddle.net/TCT8n/3/

30

原來,問題是,我的劇本是被縮小了,縮小器正在改變$ scope變量的名字。 Angular.js文檔提到了how to minify Angular code

+0

我有類似的問題,你可以發佈你如何解決這個問題? IE:你如何改變$ scope變量以防止它被縮小? – Ninja

+1

謝謝,改爲'myapp.controller('myCtrl',['$ scope',function($ scope){...}]);'解決了這個問題。 –

相關問題