无法在用户架构中显示新属性
Posted
技术标签:
【中文标题】无法在用户架构中显示新属性【英文标题】:Unable to show new properties in User schema 【发布时间】:2018-04-14 03:40:37 【问题描述】:我正在使用 MEAN 应用程序,并且正在修改用户模块。我修改了用户模式以包含 2 个新属性:casetype 和 Steps。 casetype 只是一个字符串,而 Steps 是一个数组。我创建了一个视图来显示这些以及一个控制器。当我运行服务器时,页面上都没有显示。如果我尝试显示登录用户的任何预先存在的属性,它们可以正常工作,这似乎是我添加的新内容不起作用。更令人费解的是,它们保存得很好,在使用 Mongo shell 时,我可以通过基于 casetype 的查询找到用户。
查看:
<div class="row">
<h1 ng-bind="vm.user.casetype"></h1>
</div>
<div class="row">
<div class="col-md-6">
<div class="tableWrapper">
<table id = "table_id" class="table table-hover">
<thead>
<tr>
<th>Step</th>
<th>Todo</th>
<th>Completed?</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="step in vm.user.steps.type | filter: query" >
<td>step.num</td>
<td>step.text</td>
<td class = "y_n">step.completed</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
UserSchema 添加:
//case type
casetype:
type: String,
default: 'Default Case Type'
,
//steps for case tracking
steps:
type: [
num:
type: Number,
//default: 0
,
text:
type: String,
trim: true,
//default: 'Todo for step'
,
completed:
type: Boolean,
//default: false
],
default: [
num: 0,
text: 'todo for step',
completed: false
]
,
【问题讨论】:
【参考方案1】:Steps 是一个对象。你需要渲染 steps.type 这是一个数组:
<tbody>
<tr ng-repeat="t in vm.user.steps.type | filter: query" >
<td>t.num</td>
<td>t.text</td>
<td class = "y_n">t.completed</td>
</tr>
</tbody>
【讨论】:
感谢您的修复,但这仍然不能解决根本问题,它仍然没有显示在视图中。 你试过把它放在双花括号里吗-<h1>vm.user.casetype</h1>
还有什么是查询?如果它为空,它将尝试将过滤器与空值匹配,这可能是原因。尝试删除过滤器开始。
我试过使用双花括号,但也没有用,删除过滤器也没有效果。我很确定问题不在视图本身以上是关于无法在用户架构中显示新属性的主要内容,如果未能解决你的问题,请参考以下文章