javascript - 循环构建菜单链接时检查是否有状态

标签 javascript angularjs angular-ui-router

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

JS:

$scope.sidebarLinks = [
    {
        name: 'Dashboard',
        state: 'dashboard',

    },
    {
        name: 'Students',
        state: 'student.list'
    },
    {
        name: 'Organization',
        children: [
            {
                name: 'School Profile',
                state: 'schoolProfile.detail',
            },
        ],
    },
]

HTML:

<ul>
  <li ui-sref-active="active" ng-repeat="x in sidebarLinks">
    <a ui-sref="{{x.state}}"></a>
  </li>
</ul>

由于“组织”的状态未定义,因此 ui-sref 为空。 因此出现错误:

Error: Invalid state ref ''

我在以下答案中发现了某种黑客:

How to achieve that "ui-sref" be conditionally executed?

是否有某种(黑客)方法可以解决问题而无需为此创建新函数或 Controller ?

最佳答案

如果您不希望有其他功能,则可以使用 ng-if 提供一个带有 ui-sref 的链接(如果状态已设置),如果状态未定义,则可以使用没有的链接.

或者,如果未使用 {{x.state || 定义状态,则可以默认为另一个状态。 myOtherState }}

由于您的组织中有 child ,我想 ng-if 变体最适合您,如果您希望显示 child ,并且这需要额外的 HTML。

关于javascript - 循环构建菜单链接时检查是否有状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39164105/

相关文章:

angularjs - Nodejs http ://test. dev :3000/api/profile. 否 'Access-Control-Allow-Origin' header Origin 'http://localhost:9000'

javascript - 以 AngularJS 的方式向 MongoLab 添加一个新的模型字段

javascript - 如何在 angular.js 指令中使用调用元素的文本?

javascript - 如何调用 Angular 组件中 asset 文件夹下单独文件中的外部 Javascript 函数?

javascript - 有效的 html - &lt;script&gt; 标签之间的 '<' 或 '>'

javascript - 如何禁用特定的 ACE 编辑器 CSS 模式警告规则?

AngularJS UI 路由器处理 404s

angularjs - ui.router : how to omit a default parameter from URL

javascript - 如何在 spring boot 应用程序中处理长轮询,由 nginx 进行负载平衡?

javascript - AngularJS - 变量未在 View 中更新(不使用范围)