Я пытаюсь передать параметр URL к контроллеру AngularJS, используя код ниже:параметр Invoke функция как часть нг-INIT
<div ng-app>
<div ng-controller="TodoCtrl" ng-init="init(getParameter('myParam'))">
</div>
</div>
function TodoCtrl($scope) {
$scope.init = function(category)
{
$scope.category = category;
alert(category);
};
}
function getParameter(theParameter) {
var params = window.location.search.substr(1).split('&');
for (var i = 0; i < params.length; i++) {
var p=params[i].split('=');
if (p[0] == theParameter) {
return decodeURIComponent(p[1]);
}
}
return false;
}
http://jsfiddle.net/U3pVM/15042?myParam=test
Но появляется функция getParameter('myParam')
это не вызывается правильно я ожидаю, что alert(category);
отобразит 'test', но вместо этого отобразит undefined
.
Как передать параметр URL в контроллер AngularJS?
Update:
Вот решение, я пошел с:
alert(gup('category' , $location.absUrl()))
function getParameter(name, url) {
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regexS = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp(regexS);
var results = regex.exec(url);
return results == null ? null : results[1];
}
Url имеет форму http://xxx.xxx.xxx?category=test