Angularjs 如何在Plunker中使用uiRouter使用url参数设置$stateParams?
我试图用plunker用url查询参数演示一些东西,但我甚至无法显示这些参数(因此无法演示我的原始问题) 我创建了一个简单的plunker,其中states url属性如下所示:Angularjs 如何在Plunker中使用uiRouter使用url参数设置$stateParams?,angularjs,angular-ui-router,plunker,Angularjs,Angular Ui Router,Plunker,我试图用plunker用url查询参数演示一些东西,但我甚至无法显示这些参数(因此无法演示我的原始问题) 我创建了一个简单的plunker,其中states url属性如下所示:url:'/root?firstParam' 然后,我想用我在浏览器url中为该queryParameter编写的内容填充$stateParams.firstParam。 , 我可以想象,$stateParams.firstParam对于第一个url是未定义的,但是对于第二个url则设置为“foo”。但在这两种情况下都没
url:'/root?firstParam'
然后,我想用我在浏览器url中为该queryParameter编写的内容填充$stateParams.firstParam
。
,
我可以想象,$stateParams.firstParam
对于第一个url是未定义的,但是对于第二个url则设置为“foo”。但在这两种情况下都没有定义
如何设置
$stateParams.firstParam
?编辑:似乎这实际上是可能的(@Rogerio-Soares答案证明了这一点)。将我的答案保留在这里,因为代码中还有其他错误
无法从Plnkr应用程序中的浏览器搜索栏中获取参数,因为它是在iFrame中运行的。我在下面修复了您的另一个问题:
我将参数添加到您的语句中,否则如下所示:
$urlRouterProvider.otherwise('/root?firstParam=test');
问题是,当没有找到其他路由时,您重定向到了root,并且没有为路由指定任何参数
更新的PlunkR:问题是plnkr在iFrame中运行,因此您尝试的URL完全错误
试试这个:
我添加了一个指向根状态的链接,第一个参数设置为“Yeah”,如下所示:
<a ui-sref="root({firstParam: 'YEAH'})">Go to Root with Firstparam = "YEAH"</a>
错误:如果直接在浏览器中打开此URL,查询参数将正确传递给AngularJS应用程序,并设置为$stateparms.firstParam
正确:我没有找到一种方法,可以在不将代码嵌入iframe的情况下获得plnkr的永久URL。我的两分钱:正如@Johannes Ferner所说,Plunker使用iframe,但你至少可以通过文档获得你的URL。推荐人
它有点粗糙,但能工作:D
$scope.parameters = [];
var url = document.referrer;
var props = url.split("?")[1]
.split("&")
.map(function(o){
return o.split("=");
});
console.log(props);
for(var i = 0; i < props.length; i++){
var prop = props[i];
console.log(prop);
if($stateParams.hasOwnProperty(prop[0])){
$scope.parameters.push({name: prop[0], value:prop[1]});
}
}
$scope.parameters=[];
var url=document.referer;
var props=url.split(“?”[1]
.分割(&)
.map(函数(o){
返回o.split(“=”);
});
控制台日志(道具);
对于(变量i=0;i
该死,我刚刚输入了答案:D有50个代表:p 17天了,你比我快了几分钟!至少朝着我想要的方向迈出了一步。但是有没有一种方法可以在浏览器的地址栏中实际包含这些参数呢?在Plunkr示例中没有,我所知道的地址栏中的路由映射到Plunkr网站路由。但在一个没有包装在另一个网站中的实际应用程序中,它会起作用。或者我的意思是从实际url中获取url参数,并将其设置到plunker中的演示应用程序中。我想我想要的是双向的。但这似乎不可能?不,我不认为PlunkR会将查询传递给实际的Plunk。也许还有其他类似的工具可以做到这一点。这里有另一个关于JSFIDLE的问题,似乎有一个答案:这确实有点骇客!在某种程度上,它确实完成了任务,但我希望它能在角度生命周期内工作。从答案和评论来看,我认为这个问题的答案是否定的。但是你确实可以从参数中得到一个实际的值。