AngularJS onload - 未捕获的ReferenceError:未定义$ scope

Jim*_*mmy 2 javascript angularjs

我正在使用angularJS来加载加载警报的不同方法.我看到这个方法记录在案:

http://jsfiddle.net/AQ533/9/

JS

$scope.init = function () {
  ($window.mockWindow || $window).alert('Hello');
};
Run Code Online (Sandbox Code Playgroud)

HTML

<div data-ng-controller="myCtrl" data-ng-init="init()">
<span id="logo">Just a</span><span id="small" >PREVIEW</span>    
</div>
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

未捕获的ReferenceError:未定义$ scope

有人能告诉我这个实现我做错了吗?

Dav*_*yon 6

您必须定义myCtrl才能$scope使用:

function myCtrl($scope, $window) {
    $scope.init = function () {
      ($window.mockWindow || $window).alert('Hello');
    };
}
Run Code Online (Sandbox Code Playgroud)

这是一个更新的小提琴.

编辑: 我不得不div包括你的小提琴ng-app. ng-app告诉角度应用程序的全局范围.这允许它编译内部的所有内容,看看它是否可以找到任何控制器等.

此外,$scope必须在之后传递给myCtrl具有任何依赖关系的控制器的实现(在本例中为$window服务).