如何用Ember中的上下文填充动态把手

时间:2014-06-24 14:32:47

标签: javascript ember.js handlebars.js

在我们的数据库中,我们使用动态手柄。我们已经有一个从数据库编译把手的函数,但是没有注入上下文(参见下面的代码)。

但是如何编写一个函数来向把手添加上下文?

我们有一个模型content element

var ContentElement = DS.Model.extend({
  key: DS.attr('string'),
  value: DS.attr('string'),
  template: function(){
    return Ember.Handlebars.compile(this.get('value'));
  }.property('value'),
  handlebarsHtml: function() {
    return Ember.View.create({
      template: this.get('template')
    });
  }.property('template'),
});
export default ContentElement;

在路线中,我们将内容元素设置为landing变量

setupController: function(controller, model) {
  this.store.find('contentElement', { project_id: model.get('id'), key: 'signup.landing'     }).then(function(contentElements) {
    controller.set('landing', contentElements.get('firstObject'));
  });
  return this._super(controller, model);
}

车把

{{view Ember.ContainerView currentViewBinding='landing.handlebarsHtml'}}

您可以从数据库中获得的一个示例:

Tell your friend about {{product.name}}!

Ember必须填写product.name


我们使用ember-cli 0.0.24,ember 1.5.1和ember数据1.0.0.beta8

1 个答案:

答案 0 :(得分:0)

此代码已经有效!我们现在使用自定义助手。因此模型将保持干净,车把将很漂亮。

Use custom helpers in Handlebars which are loaded from an api