为什么这个Angular控制器抛出"错误:未知提供者:nProvider < - n"?

Cha*_*eus 16 javascript angularjs

jsFile的代码:

<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"
    };
}
Run Code Online (Sandbox Code Playgroud)

我刚刚开始使用Egghead.io上的视频学习Angular.接下来我被困在John讨论控制器第二个视频上.它适用于他的视频,在我的机器上失败.

代码是如此基本我无法弄清楚是什么引发了这个错误:

> 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)
Run Code Online (Sandbox Code Playgroud)

如果我使用谷歌CDN也会抛出这个错误(从错误中,我想也许这是cdn的错).

Cha*_*eus 30

原来问题是我的脚本被缩小了,而minifier正在改变$ scope变量的名称.Angular.js文档确实提到了如何缩小Angular代码.


Rya*_*ill 2

就你的小提琴而言,如果你将 AngularJS 的用法从“onLoad”更改为“无换行 - 在 '<head>”或“无换行 - 在 <body>”中,它将正常工作。