【问题标题】:Change both state and params dynamically in ui-sref在 ui-sref 中动态更改状态和参数
【发布时间】:2016-01-04 23:17:14
【问题描述】:

使用 ui-router 我想在 ng-repeat 中动态设置 ui-sref 指令,如下所示:

<a ng-repeat="step in steps" ui-sref="{{step.state(step.param)}}"></a>

steps 是一个“状态对象”数组,每个都有自己的状态和参数对象:

var steps = [{state: 'foo', param: {id: 'bar'}}, {...}];

这会引发插值错误。另一方面,仅动态传递状态或参数在以下方面效果很好:

// Pass only dynamic state works great
<a ng-repeat="step in steps" ui-sref="{{step.state}}"></a>
// Pass only dynamic param works great
<a ng-repeat="step in steps" ui-sref="foo(step.param)"></a>

我尝试使用 ng-click 作为 hacky 解决方法,但它与 ui-sref-active 的配合效果不佳:

<a ng-repeat="step in steps" ng-click="$state.go(step.state, step.param)"></a>

有没有人熟悉动态传递状态和参数的好方法?

【问题讨论】:

    标签: angularjs angular-ui-router


    【解决方案1】:

    我认为 ui-sref 会将 () 中的内容解析为表达式。

    所以你要做的就是这个。

    <a ng-repeat="step in steps" ui-sref="{{step.state}}(step.param)"></a>
    

    不确定上述是否可行,但这是我会尝试的第一件事。

    【讨论】:

    • 请记住,ui-router 也会从您的动态变量中创建 href 属性,但它不会在更改时更新它,并且链接将始终指向初始变量值
    • 锻炼非常棒
    猜你喜欢
    • 2014-11-26
    • 1970-01-01
    • 2015-03-18
    • 2015-05-13
    • 1970-01-01
    • 2016-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多