gpt4 book ai didi

javascript - 作为 ng-init 的一部分调用函数参数

转载 作者:行者123 更新时间:2023-12-03 10:17:12 24 4
gpt4 key购买 nike

我正在尝试使用以下代码将 URL 参数传递给 AngularJS Controller :

<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”,但它显示 未定义

如何将 URL 参数传递给 AngularJS Controller ?

更新:

这是我采用的解决方案:

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

网址的格式为 http://xxx.xxx.xxx?category=test

最佳答案

Angular 内置了用于读取和设置 url 的帮助程序。在这种情况下,请使用 $location.search():(请注意,此代码段仅适用于设置了参数的页面!)

function TodoCtrl($scope, $location) {
var param = $location.search().myParam;
if(param) {
$scope.category = param;
alert(param);
}
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app>
<div ng-controller="TodoCtrl">
</div>
</div>

在这里,我“假”设置了参数,以便您可以看到它的实际效果:

function TodoCtrl($scope, $location) {
$location.search('myParam', 'myValue')
var param = $location.search().myParam;
if(param) {
$scope.category = param;
alert(param);
}
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app>
<div ng-controller="TodoCtrl">
</div>
</div>

关于javascript - 作为 ng-init 的一部分调用函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29809763/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com