我想使用ui-router以动态定义的顺序组装一系列页面的导航。 每个模板都来自一个独立的模块,可以重新排序或跳过,因此我不想对" next"的ui-sref属性进行硬编码。每个模板上的按钮。
我的目标是
如何在页面上放置一个通用按钮,比如说
<a ui-sref="next">
FutureStates附加组件似乎有点矫枉过正,所有状态都已定义,我直到运行时才知道应该调用它们的顺序。
我有复杂的参数,我想传递给无法放在网址上的状态。
答案 0 :(得分:0)
睡觉后,我意识到在我的情况下更简单的选择是使用ng-click(特别是当我传递的参数不易编码时):
<a href="" ng-click="next()">
<script>
function next() {
$state.go(theNextState, { arg1: { subArg: nestedObject } } );
}
</script>
以下是一个有效的例子:http://plnkr.co/edit/CnNv08Cfb2dpRsnoOxY8
我会将此代码弹出到指令中,因此不同的模块只需要执行
<next-button>
在他们的模板中。
在某些情况下,这可能会导致可访问性问题,因为如果键盘导航,则ng-click不会触发,但在我的上下文中这不是问题(因为我将使用&lt; button&gt;它会触发它键盘)。对于有兴趣使这个解决方案可访问的其他人,这里有一个讨论: