如何动态渲染Ember组件

Tom*_*mas 5 javascript ember.js ember-components

{{component-name}}在模板中使用时,渲染组件效果很好.我想使用动态参数从路径渲染组件.我试过这个

App.ApplicationRoute = Ember.Route.extend({
  init: function(){
      this.render("components/comp-two", {
        into: "application",
        outlet: "test"
      });

  }
});
Run Code Online (Sandbox Code Playgroud)

它成功呈现模板,但组件的事件(init,didInsertElement)和操作不起作用.

如何使事件和行动发挥作用?

例如:http://emberjs.jsbin.com/badaku/1/

Vai*_*hav 3

如果你在 render 方法中给出一些模板名称,ember 只会渲染该特定模板,它不会被视为组件。你可以创建一个虚拟模板,在其中你可以使用你的组件。

我已经更新了您的 jsBin 示例 http://jsbin.com/pajirefeta/1/edit

  • 那么您可以将数据作为 {{comp-one compData="thisText"}} 传递并在组件内使用 compData 属性。 (2认同)
  • 您可以拥有一个属性,例如 myProp,它将获取动态数据(myProp = thisText),您可以将其分配给组件 {{comp-one compData=myProp}} 这里没有任何硬编码,您也可以使用动态属性。请记住,不要在您的属性上加引号,否则它将是一个字符串。 (2认同)