Angularjs &引用;新";带有null参数的状态的URL slug
假设我有一个CRUD应用程序,其状态树大致如下: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),以及一
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
属性重定向到实际状态。当我有机会的时候,我会用一个例子给出一个答案。