【问题标题】:angular Service calling twice角度服务调用两次
【发布时间】:2016-07-01 09:45:54
【问题描述】:

几个小时后我就对这个问题感到震惊,并努力解决这个问题,

所以我在这里发布一些我的文件,

这是我的 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 也被调用了两次。

很久以前就到这里了,所以请有人帮我解决这个问题。

如果我的 End 需要其他任何东西,我很乐意为您提供这些

【问题讨论】:

    标签: angularjs angular-services angular-controller


    【解决方案1】:

    我找到了解决方案,

    我不知道按钮类型的问题

    在我的 html 表单中,我添加了 ng-submit,并且在相同的表单操作按钮类型中是提交,我使用 ng-click 提交表单,

    后来发现是错的,

    如果我们使用按钮类型作为按钮,那么 ng-click 可以工作,如果按钮类型是提交,那么你不需要 ng-click 按钮。

    要学的东西太多了,喜欢编码。

    希望对你有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-25
      • 1970-01-01
      • 2012-01-29
      • 1970-01-01
      • 1970-01-01
      • 2019-12-07
      • 2018-05-02
      相关资源
      最近更新 更多