46

次のコードがあります。

app.factory('Position', ['$timeout', function() {

    var position = {
        latitude: 44,
        longitude: 26
    };

    console.log("Timeout started");

    $timeout(function() {
        position.latitude += 15;
        position.longitude += 15;
    }, 2000);

    return position;
}]);

そして$timeout not defined、Javascript コンソールに入ります。サービスの依存関係を正しく注入していませんか?

4

1 に答える 1

91

あなたは注射しませんでした$timeout。次のようになります。

app.factory('Position', ['$timeout', function($timeout) {
    ...
}]);

このように宣言すると、JavaScript コードが縮小されたときにサービスが正しく識別されます。これが縮小化にどのように役立つかについての詳細は、縮小化に関する注意と縮小化のための AngularJS モジュールの宣言を参照してください。

縮小が計画に含まれていない場合 (たとえば、簡単なテストのため)、単純に使用できます。

app.factory('Position', function($timeout) {
    ...
});
于 2013-09-25T15:42:48.187 に答える