2016-07-01 20 views
0

我打這個問題從幾個小時,敲打我的腦袋來解決這個問題,角服務調用兩次

所以我在這裏張貼一些我的文件,

這是我的index.html

<body ng-app="app" ng-class="!$auth.isAuthenticated()? 'page-header-fixed page-sidebar-closed-hide-logo page-content-white' : 'login'" > 


    <!-- NAVIGATION --> 
    <div data-ng-include="'app/views/common/header/header.html'" style="width:100%;"></div> 
    <div class="clearfix"> </div> 
    <!-- MAIN CONTENT --> 
<div class="page-container"> 
    <div data-ng-include="'app/views/common/sidebar/sidebar.html'"></div> 
    <div class="page-content-wrapper"> 
    <div ui-view></div> 
    </div> 
</div> 

<div data-ng-include="'app/views/common/footer/footer.html'" class="page-footer" style="bottom:0;"></div> 
    <script src="app/scripts/login/services/login.service.js"></script> 
    <script src="app/scripts/login/controllers/login.controller.js">  </script> 
    <script src="app/scripts/common/services/local.storage.js"></script> 
    <script src="app/scripts/common/services/authentication.service.js"></script> 

只是提了,我已經添加登錄控制器,服務,本地存儲和驗證js文件

這是我的控制器

angular.module('app').controller('loginController',['loginService', 'toastr', '$state', 'authenticationService',function (loginService, toastr, $state, authenticationService) { 


var vm = this; 

vm.login = function (userModel) { 

    loginService.login(userModel, function (response) { 

     if (response.status === 200) { 
      authenticationService.setCredentials(response.data); 
      $state.go('companyList'); 
      return; 
     } 
     if(response.status === 400) { 
      return toastr.error("login Failed"); 
     } 
    }); 
} 

}]);

我的服務有:

(function() {     
'use strict'; 

angular.module('app').factory('loginService', loginService); 

loginService.$inject = ['httpi', 'API','$localStorage']; 

function loginService(httpi, API, $localStorage) { 

    var service = {}; 

    service.login = login; 
    service.setUserDetails = setUserDetails; 
    service.getUserDetails = getUserDetails; 


    return service; 

    function login(user, callback) { 

     httpi({ 
      method:"post", 
      url: API.login, 
      data: { 
       email:user.email, 
       password:user.password 
      } 
     }).then(function (response) { 
      callback(response); 
     }, function (response) { 
      callback(response); 
     }); 
    } 

    function setUserDetails(data) { 
     $localStorage.setObject("userData", data); 
    } 

    function getUserDetails() { 
     return $localStorage.getObject("userData"); 
    } 

} 
})(); 

的問題是,這個登錄服務被調用了兩次。 供參考。我經歷了類似的問題,我沒有添加控制器兩次,角度文件兩次,ui-view兩次,服務兩次,我沒有ng-show,ng-hide的東西

所以我找不到解決方案,

我不知道這個服務被調用兩次。我也驗證了authentication.js,我也嘗試過使用開發人員工具,但找不到解決方案。

由於我的服務被調用了兩次,toastr這個控制器的依賴關係也被調用了兩次。

很久以前從這裏衝過來,所以有人請幫我解決這個問題。

如果有的話是從我端所需否則我會很樂意爲您提供這些

回答

1

我發現這個解決方案,

我不知道在按鈕式此事的

我HTML表單我又增加了NG-提交併以相同的形式,操作按鈕類型已提交,和我用了NG-點擊提交表單,

這是我後來發現是錯的,

如果我們使用按鈕類型作爲按鈕,那麼ng-click工作,並且如果按鈕類型是提交的,那麼你不需要ng鍵單擊按鈕。

這麼多事要學,愛編碼。

希望它可以幫助,有一個..