这个问题可能有点含糊不清。在下面添加了一个JsBin示例。
http://emberjs.jsbin.com/julimila/4/
我有两个问题。
ONE:
正如您在示例中所看到的,由于某种原因,Ember不喜欢以大写字符开头的属性。在示例中,Subject
不会被渲染,subjectInLowercase
会渲染。
我请求数据的API总是以这个大写符号发送数据,我无法控制它。目前我正在通过将数据传递给将所有属性转换为camelCase的方法来解决此问题。幸运的是,如果我将数据发送回camelCase,服务器并不在意。我该如何解决这个问题?
TWO:
我需要在渲染之前修改数据中的一些属性。在示例中,我添加了一个名为formattedDate
的新属性。这是Timestamp
字段的修改版本。我通常使用Handlebars帮助器来执行此格式化,但这一次,它是一个输入字段。更新模型时,我不希望此formattedDate
属性返回到服务器。有没有比在模型中更新其相关属性更好的方法,然后手动删除这些额外的字段。
答案 0 :(得分:0)
您可以将格式日期逻辑放在控制器中,因为控制器是模型的代理。
App.IndexController = Ember.ObjectController.extend({
getFormattedDate: function(){
return moment(this.get('model.Timestamp')).format('DD/MM/YYYY');
}.property('id'),
actions: {
updateForm: function() {
var data = this.get('model');
console.log(data);
// Post this model back to the server
}
}
});
在视图中使用
Formatted Date: {{input value=getFormattedDate}}