Angularjs &引用;新";带有null参数的状态的URL slug

Angularjs &引用;新";带有null参数的状态的URL slug,angularjs,angular-ui-router,Angularjs,Angular Ui Router,假设我有一个CRUD应用程序,其状态树大致如下: main main.tasks(列出现有任务的状态) main.tasks.task(编辑或创建任务的状态,取决于是否传入id参数) main.tasks.task.step0(这些基本上对应于“向导”中的选项卡) main.tasks.task.step1 。。。等等 在main.tasks.task状态下,我希望能够定义它的URL和参数,这样我就可以有一个链接(ui-sref)来编辑每个task(例如/tasks/1),以及一

假设我有一个CRUD应用程序,其状态树大致如下:

  • main
    • main.tasks
      (列出现有任务的状态)
      • main.tasks.task
        (编辑或创建任务的状态,取决于是否传入
        id
        参数)
        • main.tasks.task.step0
          (这些基本上对应于“向导”中的选项卡)
        • main.tasks.task.step1
        • 。。。等等
main.tasks.task
状态下,我希望能够定义它的URL和参数,这样我就可以有一个链接(
ui-sref
)来编辑每个
task
(例如
/tasks/1
),以及一个用于创建新任务的链接(例如
/tasks/new
),而无需愚蠢的参数重载或状态重复

我知道的唯一方法是传入一个魔术字符串,而不是一个有效的ID,或者为两个场景(创建与更新)中的每一个都有一个单独的状态树(包括所有子状态的副本)。这就是我为应用程序的其他更简单的部分所做的,但在本例中,因为这部分有太多的子状态,所以我真的希望避免重复


关于如何最好地做到这一点,有什么提示吗?

为什么不检查
$stateParams
,例如,如果它是一个数字,则加载数据(用于编辑),如果它是一个值字符串
new
,则提供一个新的创建表单?这基本上就是我所做的(这是“神奇字符串”方法)。我不喜欢它,但如果没有其他方法,那可能是我所知道的最不坏的方法。我还创建了两个虚拟状态,只提供我想要的URL/参数,并使用1.0.0-rc.1中的新
redirectTo
属性重定向到实际状态。当我有机会的时候,我会用一个例子给出一个答案。