Angular(以及整个MEAN堆栈)非常新。
我有一个MongoDB数据库集合:
db.users({
username: "Test1",
fname: "Bob",
lname: "Saget",
email: "test@test.com",
password: "12345",
status: [{
active: false,
"non-active": false,
suspended: true,
"un-confirmed": false,
banned: false
}]
})
我只是希望将所有用户都打印到屏幕上。并且已经成功地做到了这一点。
<tr ng-repeat="user in users">
<td>{{user.username}}</td>
<td>{{user.fname + ' ' + user.lname}}</td>
<td>{{user.email}}</td>
<td>{{user.password}}</td>
<td></td>
</tr>
我的问题在于尝试根据布尔值显示状态数组的字段(而不是值)。因此,在示例中,它将读取“暂停”一个页面而不是“真实”(并且仅返回真正的值 - 只有一个)。
我是否会变得眼花缭乱,是否有更好的数据库结构可以支持这类功能呢?
我尝试过ng-if和ng-repeat与filter:{}选项的组合。
如果需要,我可以提供额外的细节。
你们怎么会这样做?
非常感谢
答案 0 :(得分:1)
获得用户后,您可以浏览并更新状态。
angular.forEach($scope.users, function(a, b){
var user = a;
var status = a.status[0]; // <-- because your status are an array we pick the first one.
for (var k in status) {
if (status.hasOwnProperty(k)) {
if (status[k]) { // <-- if status is true then get the key.
user.status = k; // <-- set the user status object to the key.
}
}
}
});
您可以将user.status = k
更改为您想要的任何内容,将其设置为状态会覆盖状态数组。
工作示例 - &gt; http://jsbin.com/zarulo/1/edit?html,js,output
希望这有帮助!