2017-06-16 188 views
1

我有不斷mainApp.constant('baseUrl','http://localhost:63760'),我需要使用它作爲我所有工廠的默認基礎url。當我將它注入到控制器中時,它可以很好地工作,但不能與工廠一起工作(當控制器調用工廠時)會給出未定義的錯誤。請參閱我的下面的代碼。爲什麼angularjs的常數不能與工廠一起工作

app.js

'use strict'; 
var mainApp = angular.module("mainApp", ["ui.router", "ui.bootstrap"]); 

mainApp.constant('baseUrl', 'http://localhost:63760'); 

工廠

mainApp.factory('StudentServices', ['$http', '$rootScope', function ($http, $rootScope, baseUrl) { 
    return { 
     GetStudentProfileByPIN: function (param) { 
      alert(baseUrl); 
      return $http({ 
       url: baseUrl + '/Api/ApiProfile/GetStudentProfile/' + param, 
       method: 'POST', 
       async: false 
      }); 
     } 
    }; 
}]); 

控制器

mainApp.controller('loginController', function ($scope, $rootScope, $state, $window, StudentServices) { 
    $scope.user = {}; 
    $scope.login = function() { 
     StudentServices.GetStudentProfileByPIN($scope.PIN).then(function (response) { 
      if (response.data.Student != null) { 
       $window.localStorage.setItem('Student', angular.toJson(response.data)); 
       $window.location.href = "/Profile/#/home"; 
      } 
      else { 
       alert(response.data.Message); 
      } 
     }); 
    }; 
}); 

回答

5

你缺少** 'baseUrl', **你應該有它,

mainApp.factory('StudentServices', ['$http', '$rootScope','baseUrl', function ($http, $rootScope, baseUrl) { 
1

注入串baseUrl

mainApp.factory('StudentServices', ['$http', '$rootScope','baseUrl' function ($http, $rootScope, baseUrl) 
相關問題