无法将 $ionicHistory 注入我的 angularjs 控制器

Cannot inject $ionicHistory into my angularjs controller

我正在尝试在我的 Angularjs/Ionic 应用程序的控制器中使用 $ionicHistory.goBack() 。当我尝试将它注入我的控制器时,如下所示

app.controller('ClockInController', function($scope, $http, JobData, Data, $rootScope, $interval, $ionicHistory)

我 运行 应用程序出现以下错误:

未捕获错误:[$injector:unpr] 未知提供者:$ionicHistoryProvider <- $ionicHistory http://errors.angularjs.org/1.3.0/$injector/unpr?p0=%24ionicHistoryProvider%20%3C-%20%24ionicHistory, http://localhost:8100/vendors/onsen/js/angular/angular.js,行:4116

angular.module('myApp', ['ionicModuleOrWhatever'])
.controller('ClockInController', ['$ionicHistory', function ($ionicHistory) {
    // Do something with $ionicHistory
}]);

我用你提供的 link 解决了这个问题:http://errors.angularjs.org/1.3.0/$injector/unpr?p0=%24ionicHistoryProvider%20%3C-%20%24ionicHistory。文档可能有点密集,但它是第一行

更新:您提到您从 github 复制了代码,我发现了您的问题。您必须复制您认为应该复制的文件而不是克隆 - 但您复制了 wrong file.

由于您的错误 Uncaught ReferenceError: IonicModule is not defined, localhost:8100/js/history.js, Line: 19 -- 该文件具有以下第 19 和 20 行:

IonicModule
.factory('$ionicHistory', [

对我来说,这看起来像未编译的 coffeescript。 您复制的文件不是文件的发布版本。你需要 this file, instead. The ionic github project 包含一个 gulpfile,这意味着他们正在使用一个构建工具。您可能复制了用于生成文件发布版本的文件,而不是文件的发布版本。在像这样包含 gulpfile 或 gruntfile 的项目中,检查 /dist/ 目录、/dest/ 目录、release 目录或 build/ 目录,然后复制从那里归档。如果您不打算修改 $ionicHistory 源代码,也可以复制文件的 .min.js 版本。