在AmpersandJS视图中,是否存在从模型转换数据的约定?例如,我希望能够在显示之前在视图中格式化user.joined
日期。我宁愿不必在模型中这样做。
可能是这样的:
var View = require('ampersand-view');
var formatDate = require('../helpers/format-date');
module.exports = View.extend({
bindings: {
'model.joined': {
hook: 'joined',
transform: function(date) { return formatDate(date) }
}
}
});
答案 0 :(得分:0)
使用绑定时,您不限于model
。您还可以绑定到视图上的属性,并且从AmpersandView
扩展AmpersandState
这些属性也可以派生,例如:
var View = require('ampersand-view');
var formatDate = require('../helpers/format-date');
module.exports = View.extend({
derived: {
formattedJoinedDate: {
deps: ['model.joined'],
fn: function() { return formatDate(this.model.joined) }
}
}
bindings: {
'this.formattedJoinedDate': {
hook: 'joined'
}
}
});
答案 1 :(得分:0)
不要忘记View
扩展State
,因此您可以在视图定义中设置要绑定的属性。在View.extend
内,您可以在props
哈希中实例化内容,就像使用ampersand-model
或ampersand-state
一样,然后在它们上设置绑定!
var View = require('ampersand-view');
var formatDate = require('../helpers/format-date');
module.exports = View.extend({
props: { someDate: 'date' },
bindings: {
someDate: {
hook: 'joined',
transform: function(date) { return formatDate(date) }
}
},
initialize: function() { this.someDate = new Date(); }
});