在循环中构建菜单链接时,检查是否有状态。
在循环中构建菜单链接时,检查是否有状态。
我正在尝试使用以下数组创建导航链接:
JS代码:
$scope.sidebarLinks = [ { name: '仪表盘', state: 'dashboard', }, { name: '学生', state: 'student.list' }, { name: '组织', children: [ { name: '学校概况', state: 'schoolProfile.detail', }, ], }, ]
HTML代码:
由于'组织'的状态未定义,它的ui-sref为空。
因此会出现以下错误:
错误:无效的状态引用''
我在以下答案中找到了某种类型的解决方法:
是否有某种(hack)方式可以解决这个问题,而不需要创建新的函数或控制器?
在构建菜单链接的循环过程中,出现了检查是否存在状态的问题。出现这个问题的原因是ui-sref要求一个非空字符串,如果没有状态可用,则无法提供ui-sref。解决这个问题的方法是使用ng-if指令来在状态设置时提供带有ui-sref的链接,如果状态未定义,则提供一个不带ui-sref的链接。或者,如果状态未定义,可以默认使用另一个状态。如果希望显示子菜单,那么ng-if的方式可能更适合你,因为这需要额外的HTML。如果没有myOtherState,即如果没有状态可用,则直接丢弃ui-sref。然后这个解决方法将无效,你必须使用ng-if。除了在过去多次遇到相同的问题之外,我不知道任何其他的解决方法。