在循环中构建菜单链接时,检查是否有状态。

15 浏览
0 Comments

在循环中构建菜单链接时,检查是否有状态。

我正在尝试使用以下数组创建导航链接:

JS代码:

$scope.sidebarLinks = [
    {
        name: '仪表盘',
        state: 'dashboard',
    },
    {
        name: '学生',
        state: 'student.list'
    },
    {
        name: '组织',
        children: [
            {
                name: '学校概况',
                state: 'schoolProfile.detail',
            },
        ],
    },
]

HTML代码:

由于'组织'的状态未定义,它的ui-sref为空。

因此会出现以下错误:

错误:无效的状态引用''

我在以下答案中找到了某种类型的解决方法:

如何实现条件执行"ui-sref"?

是否有某种(hack)方式可以解决这个问题,而不需要创建新的函数或控制器?

0
0 Comments

在构建菜单链接的循环过程中,出现了检查是否存在状态的问题。出现这个问题的原因是ui-sref要求一个非空字符串,如果没有状态可用,则无法提供ui-sref。解决这个问题的方法是使用ng-if指令来在状态设置时提供带有ui-sref的链接,如果状态未定义,则提供一个不带ui-sref的链接。或者,如果状态未定义,可以默认使用另一个状态。如果希望显示子菜单,那么ng-if的方式可能更适合你,因为这需要额外的HTML。如果没有myOtherState,即如果没有状态可用,则直接丢弃ui-sref。然后这个解决方法将无效,你必须使用ng-if。除了在过去多次遇到相同的问题之外,我不知道任何其他的解决方法。

0