在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) }
}
}
});
使用绑定时不限于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'
}
}
});
包含到本地属性的绑定的文档
别忘了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(); }
});