2016-06-13 2 views
0

controller.jsопределения функций в angularjs константы

angular.module('app.main') 

.controller('MainCtrl', function ($scope, currentUser, addAPI) { 
    $scope.form = {}; 
    $scope.subdomain = currentUser.domainName; 

    $scope.add = function() { 
     addAPI.addAdmin(localStorage['token'], $scope.subdomain, $scope.form, onSuccess, onError); 
    }; 

взять детали из формы и передать маркер и подобласть (взял из текущего userDatService)

addAPI.js

angular.module('app.main').factory('addAPI', function ($resource, $http, Constant) { 
var adminAPI = function() { 

    this.addAdmin = function (token, domain, dataObj, sucCall, errCall) { 
     $http({ 
      method: 'POST', 
      url: Constant.API.prefix + domain + Constant.API.postfix + '/client/admin', 
      headers: { 
       'Token': token 
      }, 
      data: dataObj 
     }).then(handleResp).catch(handleResp); 
}; 
return new adminAPI;}); 

отправка данных по API URL

constants.js

angular.module('app.constants', []) 

.constant('Constant', { 
     'API': { 
      prefix: 'http://api.', 
      postfix:'.dev.education.in/v1/academy-api/api/v.1.0' 
     } 
    }); 

1.я хочу иметь функцию в constants.js, которая принимает пользователя или субдомен и возвращает URL?

2. это правильный способ форматирования base_url или любые предложения по улучшению.

3.I необходимо определить идеальный base_url с prefix + domain + postfix + ...

Я новичок в angularJs и Javascript, и я старался изо всех сил, чтобы получить решение, но функции не работают с постоянными

ответ

0

Это может быть лучший способ поместить ваши константы в файл javascript vanilla и загрузить их в стек (через html) до загрузки любых связанных с угловыми сценариями скриптов. Таким образом, они уже будут в глобальном пространстве имен, и вы можете просто ссылаться на них в любом месте.

например.

Constant.js

var API = { 
    prefix: 'http://api.', 
    postfix:'.dev.education.in/v1/academy-api/api/v.1.0' 
} 

index.html

<script src="Constant.js"></script> 
<script src="factories/addAPI.js"></script> 

addAPI.js

angular.module('app.main').factory('addAPI', function ($resource, $http, Constant) { 
var adminAPI = function() { 

    this.addAdmin = function (token, domain, dataObj, sucCall, errCall) { 
     $http({ 
      method: 'POST', 
      url: API.prefix + domain + API.postfix + '/client/admin', 
      headers: { 
       'Token': token 
      }, 
      data: dataObj 
     }).then(handleResp).catch(handleResp); 
}; 
return new adminAPI;});