AmpersandJS:如何在视图中显示之前转换模型数据



在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-modelampersand-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(); }
});

最新更新