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>

次のエラーが表示されます。

Uncaught ReferenceError: $scope が定義されていません

この実装で私が間違っていることを誰か教えてもらえますか?

4

1 に答える 1

6

myCtrl利用可能にするために定義する必要が$scopeあります:

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

ここに更新された fiddleがあります。

編集: あなたのフィドルをdiv含まれている でラップする必要がありましたng-appng-appアプリケーションのグローバルスコープがAngularにあることを伝えます。これにより、内部のすべてをコンパイルし、コントローラーなどを見つけることができるかどうかを確認できます。

また、後で依存関係がある$scopeコントローラーの実装に渡す必要がありますmyCtrl(この場合は$windowサービス)。

于 2013-09-15T16:55:09.510 に答える