2016-10-10 72 views
2

嗨,我是一个初学者程序员试图整合Facebook登录使用科尔多瓦。我遵循这个非常近期的指南shown here,并且复制了一个新的cordova项目中的单词代码。我有过使用Jquery的经验,但这是我第一次遇到Angular和离子。
这里是我的index.htmlFacebook cordova登录错误:'无法实例化模块facebookApp由于..'

<!DOCTYPE html> 
<html> 
    <head> 
     <meta name="msapplication-tap-highlight" content="no"> 
     <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width"> 
     <title>Facebook Login</title> 

     <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css"> 

     <script src="https://code.jquery.com/jquery-2.1.4.min.js"></script> 
     <script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script> 

     <script src="http://code.ionicframework.com/nightly/js/ionic.bundle.js"></script> 
     <script src="https://cdn.rawgit.com/driftyco/ng-cordova/master/dist/ng-cordova.min.js"></script> 
     <script src="https://cdn.rawgit.com/nraboy/ng-cordova-oauth/master/dist/ng-cordova-oauth.min.js"></script> 

     <script type="text/javascript" src="cordova.js"></script> 
     <script type="text/javascript" src="cordova_plugins.js"></script> 
     <!-- added the directories myself below --> 
     <script src="/bower_components/angular/angular.js"></script> 
     <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
    </head> 
    <body> 
     <div ng-app="facebookApp"> 
      <div ng-controller="mainCtrl"> 
      </div> 
     </div> 

     <div data-role="page" id="home"> 
      <div data-role="header"> 
       <h1>Login</h1> 
      </div> 

      <div data-role="main" class="ui-content"> 
       <p>You need to login to view your Facebook profile information</p> 
       <p>V1.0.1</p> 
       <a target="_blank" href="#" onclick="login()" style="text-decoration: none"><button>Login using Facebook</button></a> 
      </div> 
     </div> 

     <div data-role="page" id="profile"> 
      <div data-role="header"> 
       <a target="_blank" href="#home" class="ui-btn ui-icon-home ui-btn-icon-left">Home</a> 
       <h1>Profile</h1> 
      </div> 
      <div data-role="main" class="ui-content" id="listTable"></div> 
     </div> 

     <script type="text/javascript"> 
      angular.module("facebookApp", ["ionic", "ngCordova"]).controller("mainCtrl", ["$scope", "$cordovaOauth", "$http", function($scope, $cordovaOauth, $http) { 
       window.cordovaOauth = $cordovaOauth; 
       window.http = $http; 
      }]); 

      function login() 
      { 
       facebookLogin(window.cordovaOauth, window.http); 
      } 

      function facebookLogin($cordovaOauth, $http) 
      alert($cordovaOauth); 
      alert($http); 
      { 
       $cordovaOauth.facebook("201821216900862", ["email", "public_profile"], {redirect_uri: "http://localhost/callback"}).then(function(result){ 
        displayData($http, result.access_token); 
       }, function(error){ 
         alert("Error: " + error); 
       }); 
      } 

      function displayData($http, access_token) 
      { 
       $http.get("https://graph.facebook.com/v2.2/me", {params: {access_token: access_token, fields: "name,gender,location,picture", format: "json" }}).then(function(result) { 
        var name = result.data.name; 
        var gender = result.data.gender; 
        var location = result.data.location; 
        var picture = result.data.picture; 
        var html = '<table id="table" data-role="table" data-mode="column" class="ui-responsive"><thead><tr><th>Field</th><th>Info</th></tr></thead><tbody>'; 
        html = html + "<tr><td>" + "Name" + "</td><td>" + name + "</td></tr>"; 
        html = html + "<tr><td>" + "Gender" + "</td><td>" + gender + "</td></tr>"; 
        html = html + "<tr><td>" + "Picture" + "</td><td><img src='" + picture.data.url + "' /></td></tr>"; 
        html = html + "</tbody></table>"; 

        document.getElementById("listTable").innerHTML = html; 
        $.mobile.changePage($("#profile"), "slide", true, true); 
       }, function(error) { 
        alert("There was a problem getting your profile. Check the logs for details."); 
        console.log(error); 
       }); 
      } 
     </script> 
    </body> 
</html> 

复式错误被蚀返回,但最重要的是错误的,
Uncaught Error: [$injector:modulerr] Failed to instantiate module facebookApp due to:

Error: [$injector:nomod] Module 'facebookApp' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.
Anularjs也产生了错误shown here网页和建议这行代码:angular.module("facebookApp", ["ionic", "ngCordova"]).controller("mainCtrl", ["$scope", "$cordovaOauth", "$http", function($scope, $cordovaOauth, $http) {导致错误。此外,我的角是在版本1.5.8,它不支持代码试图做的这个动作。该网站建议我将它作为依赖项添加到我的应用程序的顶级模块中,但我不知道如何使用它。

任何输入或消化将不胜感激谢谢! :-)

回答

1

脚本顺序非常重要。

尝试重新安排他们这样

<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script> 
    <script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script> 
    <script src="/bower_components/angular/angular.js"></script> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 

    <script src="http://code.ionicframework.com/nightly/js/ionic.bundle.js"></script> 
    <script src="https://cdn.rawgit.com/driftyco/ng-cordova/master/dist/ng-cordova.min.js"></script> 
    <script src="https://cdn.rawgit.com/nraboy/ng-cordova-oauth/master/dist/ng-cordova-oauth.min.js"></script> 

    <script type="text/javascript" src="cordova.js"></script> 
    <script type="text/javascript" src="cordova_plugins.js"></script> 

是正常有2 angular.js注射?

+0

嘿,错误仍然在这里,重新安排后,我添加了两个.js我自己,也不工作时,我也删除它,仍然,感谢您的输入! –

0

我克服这个问题,所以解决方案是这样的: -as您打开的index.php铬你可能看到类似的错误:

Error: [$injector:unpr] Unknown provider: $cordovaProvider http://....

即由老角模块部件发生 - 如果你看看紧密地在那一部分。有标题行,包括部分ionic,ngCordova,但在新版本ngCordova被分为两个文件。所以基本上你所要做的就是将角标题更改为:

angular.module("facebookApp",["ionic","ngCordova","ngCordovaOauth"]).controller("mainCtrl", ["$scope", "$cordovaOauth", "$http"], function($scope, $cordovaOauth, $http) { 
... 
//your app code 
... 
}) 

注意到ngCordovaOauth被添加到标题中。那是你的问题。 :]祝你有美好的一天!希望它有帮助,你是我第一次帮助stackowerflow。

相关问题