Ember模型计算属性不起作用
问题描述:
我的MEEN堆栈应用程序中有模块记录错误。我有一个模型,用于从我的express服务器通过猫鼬抓取数据。Ember模型计算属性不起作用
我想改变我的模型上的日期属性,以格式化日期的方式与它在mongo数据库中的存储方式不同,以便在页面上保存一些房地产,例如:Tue Sep 19 2017 3:02:10 GMT-0700 (美国东部时间)至2017-09-19。
我跟着模型上的计算机属性的Ember文档,但模板不显示计算值。
型号:
import DS from 'ember-data';
import Ember from 'Ember';
export default DS.Model.extend({
error: DS.attr('string'),
user: DS.attr('string'),
module: DS.attr('string'),
date: DS.attr('string'),
smallDate: Ember.computed('date', function() {
var dateObj = new Date(this.get('date'));
return `${dateObj.getFullYear()}-${dateObj.getMonth()}-${dateObj.getDate()}`;
})
});
模板:
<div class="row">
<div class="col-md-8 col-md-offset-2 text-center">
<h2 class="toolTitle">Blame Panel</h2>
</div>
</div>
<div class="col-md-8 col-md-offset-2">
<table class="table">
<thead>
<tr>
<th>#</th>
<th>User</th>
<th>Error</th>
<th>Component</th>
<th>Date</th>
</tr>
</thead>
<tbody>
{{#each model as |blame index|}}
<tr>
<th scope="row">{{index}}</th>
<td>{{blame.user}}</td>
<td>{{blame.error}}</td>
<td>{{blame.module}}</td>
<td>{{blame.smallDate}}</td>
</tr>
{{/each}}
</tbody>
</table>
</div>
如果我只是使用模型的日期属性会显示未格式化的日期罚款。
答
看起来它应该工作。你看到了什么行为?
可能更适合您的设置的另一个选项是将该格式化问题移到帮助程序中。如果你这样做ember g helper format-date
,那么你可以使用同样的方法来格式化你的日期在这样一个不同的地方:
{{format-date blame.date}}
我只是在模板中越来越没有返回值的。我检查了余烬检查员,并且该财产没有出现在模型中。 –
我会建议在单元测试中测试东西,然后(助手方法或你的模型)。我发现这对追踪这些错误非常有帮助,因为您可以添加一个'debugger'语句来查看发生了什么 – acorncom
感谢您的建议生病尝试单元测试它,这会让我感到无法结束,如果我不现在搞清楚了 –