在JS文件中获取Ember组件的内容

时间:2014-11-26 17:24:38

标签: javascript ember.js

我们说我有一个Ember组件" blah"我在我的模板中使用它

{{#blah}}
  some content
{{/blah}}

我知道"一些内容"只要组件的hbs文件中有{{yield}},就会呈现。但有没有办法抓住一些内容"作为组件的js文件中的字符串? E.g。

App.BlahComponent = Ember.Component.extend({
  render: function(buffer) {
    var someContent = ???
  }
});

更新

只是为了澄清我想要做的事情。我想创建一个列表视图组件。像这样的东西

{{#list-view}}
  <div> html for list item </div>
  <div> html for form </div>
{{/list-view}}

列表视图呈现多个列表项。单击列表项时,将显示表单。所有列表项的表单都相同,但绑定到当前列表项的模型。上面的html是模板的一部分,它在服务器上生成,并且在同一模板中可能有多个列表视图。 我要做的是在组件的渲染方法中获取{{#}} {{/}}标记之间的内容,解析它并手动呈现列表视图。

1 个答案:

答案 0 :(得分:0)

你不能在模板中获取文本,除非你想破解它。

传递财产。

App.IndexController = Ember.Controller.extend({
  someContent: function() {
    return 'Lorem ipsum dolor sit amet.';
  }.property()
});    

<!-- in index template -->
{{#blah someContent=someContent}}
  {{someContent}}
{{/blah}}   

App.BlahComponent = Ember.Component.extend({
  render: function(someContent) {
    var someContent = this.get('someContent');
  }
});