2016-06-13 12 views
0

controller.jsFunktionen in AngularJS definieren Konstanten

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); 
    }; 

die Details aus der Form nehmen und Token und Sub-Domain passieren

addAPI.js

(von aktuellen userDatService nahm)
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;}); 

Senden von Daten an 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.Ich möchte eine Funktion in constants.js haben, welche Benutzer oder Sub-Domain und gibt URL akzeptiert?

2.ist es der richtige Weg, um eine base_url oder irgendwelche Vorschläge zur Verbesserung zu formatieren.

3.I brauchen ein perfektes base_url mit prefix + domain + postfix + ...

Ich bin neu in AngularJS und Javascript und ich versuchte mein Bestes zu definieren, um eine Lösung zu erhalten, aber Funktionen arbeiten nicht mit Konstanten

Antwort

0

Es kann sein, eine bessere Methode, um Ihre Konstanten in eine Vanille-Javascript-Datei zu setzen und sie auf den Stapel zu laden (via html), bevor irgendwelche winkelbezogenen Skripte geladen werden. Auf diese Weise befinden sie sich bereits im globalen Namensraum und Sie können sich einfach überall darauf beziehen.

z.B.

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;});