我正在使用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 ..}
}
前两个选择效果很好。如果我改变组织,潜在董事会的名单也会发生变化。但是,第三个选择 - 列表 - 永远不会更新。我已经确认数据存在且可用。
我查看了其他问题和答案,包括this和this。正如在这里经常发生的那样,似乎没有人提供我寻求的答案。
感谢。
答案 0 :(得分:2)
看起来像Angular的宽容自然屏蔽错误的情况。第三个列表的ng-options
需要以:
in orgsandboards[userData.apps.trello.organization]["boards"][userData.apps.trello.board]["lists"]
注意["boards"]
部分。
您目前拥有它的方式,您引用了orgsandboards[userData.apps.trello.organization]
中不存在的键,但Angular通常不会在这些情况下抛出错误 - 它只是无声地失败。