2016-04-03 50 views
2

此问题是昨天发布的Definition for gapi in an Angular controller?的后续行动。ngDrive没有定义?

用户pinoyyid向我指出他的混帐回购协议ngDrive(https://github.com/pinoyyid/ngDrive

我工作过戒烟开始跑进一个错误,在我的控制台'ngDrive' is not defined

这是导致此错误

angular.module('ngm.ngDrive') 
.provider('OauthService', ngDrive.Config) 
.config(function (OauthServiceProvider) { 
    OauthServiceProvider.setScopes('https://www.googleapis.com/auth/drive.file'); 
    OauthServiceProvider.setClientID('2231299-2bvf1.apps.googleusercontent.com'); 
    OauthServiceProvider.setTokenRefreshPolicy(ngDrive.TokenRefreshPolicy.ON_DEMAND); 
    OauthServiceProvider.setNoAccessTokenPolicy(999);     // 0 = fail, > 0 = retry after x 
}); 

代码具体的ngDrive.Config

注射服务为我app.js文件时,如下图所示

angular 
.module('App', [ 
'ngAnimate', 
'ngCookies', 
'ngResource', 
'ngRoute', 
'ngSanitize', 
'ngTouch', 
'ui.sortable', 
'firebase', 
'angular-toArrayFilter', 
'ngm.ngDrive' 
]) 

我有我没问题还按指定的方式放置了库的脚本标记:

<!-- build:js({.tmp,app}) scripts/scripts.js --> 
<script src="bower_components/ngDrive/build/module.js"></script> 
<script src="scripts/app.js"></script> 
<script src="scripts/controllers/login_controller.js"></script> 
<script src="scripts/controllers/view_resources_ctrl.js"></script> 
<!-- endbuild --> 

我不太清楚我在做什么错在这里。我没有看到指南中可能意外跳过的任何内容。

谢谢你的时间。

回答

0

我做过bower install ngDrive --save,包括<script src="../bower_components/ngDrive/build/module.js"></script>(我的index.js是在一个app文件夹中)在app.js之前,注入了ngm.ngDrive,复制粘贴.provider('OauthService', ngDrive.Config)。然后,我加入到配置,

OauthServiceProvider.setScopes('https://www.googleapis.com/auth/drive.file'); 
OauthServiceProvider.setClientID('2231299-2bvf1.apps.googleusercontent.com'); 
OauthServiceProvider.setTokenRefreshPolicy(ngDrive.TokenRefreshPolicy.ON_DEMAND); 
OauthServiceProvider.setNoAccessTokenPolicy(999); 

没有抱怨ngDrive.Config。但是,我会收到错误消息:

  1. 无法加载资源:服务器回应的404(未找到)状态:http://localhost:3000/bower_components/ngDrive/build/module.js.map(用于加载资源,我当时没有明确要求)
  2. OauthServiceProvider.setNoAccessTokenPolicy不一个函数。 (在'OauthServiceProvider.setNoAccessTokenPolicy(999)','OauthServiceProvider.setNoAccessTokenPolicy'未定义)。 (检查源和模块的当前版本中不存在这种方法)

我试过了,但无法重现您的错误。

+0

你介意把你的app.js文件放在JsFiddle上。我可能只是有一些可能导致错误的地方。 –

+0

我做了一个我的App.js和Index.html文件看起来像JsFiddle https://jsfiddle.net/uoLpmaah/1/ –

+0

看到我的主要答案,行'setNoAccessTokenPolicy'应该被删除。我已经修复了文档。 – pinoyyid

0

'ngDrive' is not defined是由module.js未能加载造成的。如果您查看网络选项卡,您将看到一个404.

此外,文档中存在一个错误,setNoAccessTokenPolicy不再是一项功能,因此您应该删除该行。版本0.1.10修复了文档。

+0

''ngDrive'未定义'错误未出现在浏览器控制台中,当我将代码放入并保存时,它出现在我的本地命令行中。 http://puu.sh/o6QxM/5914b30903.png –

+0

错误来自jshint?如果是这样,你可以忽略它。 – pinoyyid