2016-11-10 5 views
0

Gibt es eine Möglichkeit, Params in AngularJs 1.4 zu erhalten, wenn die App läuft, wenn die Parameter von Get-Methode kommen? Ex: http://www.myapp.com/whatever?param1=1234 ich gerade hier in meiner app.js Datei bedeuten:Holen Sie Parameter URL winkel, wenn Sie App laufen

var myApplication = angular.module('App', [ui.router,...]) 
     .run(function ($rootScope,$http,....){ 
      var param = // I wish to read the param here 
} 

Falls dies nicht möglich ist, wie kann ich es mit einem Controller zu bekommen? Dank

+0

Sie können $ stateProvider verwenden, um Zustände mit Parametern zu definieren. Sieh dir das an: https://scotch.io/tutorials/3-simple-tips-for-using-u-router –

+0

Danke, ich habe das mit $ locatio.search() gelöst. Es gibt ein Objekt mit den Parametern zurück. –

Antwort

0

Guten Morgen, Verwenden von $ location.search() gibt ein Objekt mit den Parametern zurück. Danke!

0

Wenn Sie Ihre Route konfiguriert wurde zu erhalten, dass Parameter, die Sie $ stateChangeStart beobachten können

$rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState, fromParams) { 
console.log(toParams); 
} 

nicht Wenn es eine Abhilfe (funktioniert perfekt: D): ist

Einer nach dem anderen

function getParamByName(name, url) { 
    if (!url) url = window.location.href; 
    name = name.replace(/[\[\]]/g, "\\$&"); 
    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), 
     results = regex.exec(url); 
    if (!results) return null; 
    if (!results[2]) return ''; 
    return decodeURIComponent(results[2].replace(/\+/g, " ")); 
} 

getParamByName('param1'); 

Oder alle

function getQueryParams(qs) { 
    qs = qs.split('+').join(' '); 
    var params = {}, 
     tokens, 
     re = /[?&]?([^=]+)=([^&]*)/g; 
    while (tokens = re.exec(qs)) { 
     params[decodeURIComponent(tokens[1])] = decodeURIComponent(tokens[2]); 
    } 
    return params; 
} 

console.log(getQueryParams(document.location.search)); 
Verwandte Themen