AngularJS - 三个依赖选择 - 只有前两个填充

时间:2014-04-08 01:32:57

标签: javascript node.js angularjs pug trello

我正在使用Express,Angular和Jade。应用程序的相关部分允许用户从他们的Trello帐户中选择组织,板和列表。这三个项构成一个层次结构:组织包含板,而板包含列表。

所以在我的玉部分中,我有以下内容:

select(ng-model='userData.apps.trello.organization', ng-options='orgId as orgDetails.name for (orgId, orgDetails) in orgsandboards')
select(ng-model='userData.apps.trello.board', ng-options='boardId as boardDetails.name for (boardId, boardDetails) in orgsandboards[userData.apps.trello.organization]["boards"]')
select(ng-model='userData.apps.trello.list', ng-options='listId as listDetails.name for (listId, listDetails) in orgsandboards[userData.apps.trello.organization][userData.apps.trello.board]["lists"]')

顺便说一句,上面的语法来自this helpful answer

无论如何,以上面的答案为模型的数据结构如下所示:

orgsandboards: {
    orgid1: {
        name: "organization 1",
        boards: {
            boardid1: {
                name: "name of the first board",
                lists: {
                    listid1: {
                        name: "name of list 1"
                    },
                    listid2: {
                        name: "name of list 2"
                    }
                }
            },
            boardid2: {
                name: "name of the second board",
                lists: {
                    listid3: {
                        name: "name of list 3"
                    },
                    listid4: {
                        name: "name of list 4"
                    }
                }                
            }
        }
    },
    orgid2: {.. and so on ..}
}

前两个选择效果很好。如果我改变组织,潜在董事会的名单也会发生变化。但是,第三个选择 - 列表 - 永远不会更新。我已经确认数据存在且可用。

我查看了其他问题和答案,包括thisthis。正如在这里经常发生的那样,似乎没有人提供我寻求的答案。

感谢。

1 个答案:

答案 0 :(得分:2)

看起来像Angular的宽容自然屏蔽错误的情况。第三个列表的ng-options需要以:

结尾
in orgsandboards[userData.apps.trello.organization]["boards"][userData.apps.trello.board]["lists"]

注意["boards"]部分。

您目前拥有它的方式,您引用了orgsandboards[userData.apps.trello.organization]中不存在的键,但Angular通常不会在这些情况下抛出错误 - 它只是无声地失败。