2

我正在尝试使用 angularJS 加载警报的不同方式。我看到这个方法记录在案:

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

JS

$scope.init = function () {
  ($window.mockWindow || $window).alert('Hello');
};

HTML

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

我收到以下错误:

未捕获的 ReferenceError:$scope 未定义

谁能告诉我这个实现我做错了什么?

4

1 回答 1

6

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

function myCtrl($scope, $window) {
    $scope.init = function () {
      ($window.mockWindow || $window).alert('Hello');
    };
}

这是一个更新的小提琴

编辑: 我不得不用div包含的ng-app. ng-app告诉 Angular 应用程序的全局范围在哪里。这允许它编译里面的所有东西,看看它是否可以找到任何控制器等。

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

于 2013-09-15T16:55:09.510 回答