首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将ui-serf形式的<a>标记的值传递给状态提供程序中的url?

如何将ui-serf形式的<a>标记的值传递给状态提供程序中的url?
EN

Stack Overflow用户
提问于 2014-11-21 13:00:12
回答 1查看 387关注 0票数 0

我使用这个plunkr来解释我的问题:

在index.html中单击此链接时

代码语言:javascript
复制
<li><a ui-sref="route1({test:true})">Route 1</a></li>

它转到这个链接:http://localhost:3000/#/route1?test=true

我正在尝试弄清楚如何从链接中获取文本"Route 1“,并将其用作路由url中的参数:"/route1:?test",

我希望url动态生成,如: url:"/route1:Route 1“

EN

回答 1

Stack Overflow用户

发布于 2014-11-21 13:47:55

有几种方法可以使路由名称成为state params的一部分,

resolve你可以让它成为你的状态的一部分(比如/:routename/?test,你可以让它成为你状态定义的属性的一部分),你可以把它附加到路由上--但是,正如你在示例中所说的,你的文本

  1. 并没有绑定到一个作用域,甚至没有放入一个角度,所以你至少需要将它添加到作用域中--使用把手栏(即{{ routeName }}并设置控制器中的值),或者使这个值映射到某个配置中并注入到控制器中。

我认为,如果您想要像依赖URL参数一样依赖它,我建议您查看路由定义中的resolve对象,因为它似乎就是您正在寻找的对象。

不过,您需要在resolve映射之外定义实际的文本,并可能创建一个从配置模块返回值的函数,这样您还可以将该值绑定到导航栏链接。

代码语言:javascript
复制
$stateProvider
    .state('route1', {
        url: "/route1?test",
        templateUrl: "route1.html",
        resolve: {
             activeRoute: function () {
                 //you could have a config map that you inject into this module
                 //or have it be a set property
                 return myConfigMap['route1'];
             }
        }
    })
      [...]

  1. 您可以使用自定义数据,然后可以在您的控制器中像这样访问它:

console.log($state.current.data.customData1);

不管它必须以某种方式定义,如果你想要真正的动态url生成,你可能需要构建一个函数,它可以基于定义特定状态的参数列表来构建状态定义。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27054413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档