在Ember中在运行时动态选择视图/模板

时间:2014-01-03 18:38:56

标签: javascript ember.js handlebars.js

我试图做一些非常类似于前一个SO问题的内容,从一年前开始:Dynamically choosing a view at runtime with Ember + Handlebars

基本上我有一条路线,我想根据检索到的模型数据加载不同的视图。作为default_container is now deprecated我不能只是从setupController附加视图,这将是一种丑陋的方式。引用的SO似乎意味着我可以在我的模型中引用该视图,这听起来是一个好的开始,或者更好地使用mixin来扩展模型并获得相同的结果,但是我无法获得这些中的任何一个工作(我得到"Assertion Failed: Unable to find view at path 'model.view'"

理想情况下,我希望能够做类似

的事情
{{view model.view contentBinding="??"}}

来自我的模板,但我可能会离开,旧的SO中的代码依赖于Em.getPath(this.get('constructor') + 'View')我也认为现在已弃用...

对于ember和附加视图的新手现在已弃用我发现使用append添加大多数官方文档的视图和子视图相当困难。或者也许我根本不理解ember中的视图创建......

谢谢!

1 个答案:

答案 0 :(得分:0)

我不确定完全你正在尝试做什么,但你可以尝试这样的事情:

App.YourController = Ember.Controller.extend({
  computedPropertyWithNameOfView: function(){
    return 'yourView';
  }.property()
})


{{render computedPropertyWithNameOfView}}

这应该呈现一个视图,该视图将根据bound属性进行更改。该属性应该像控制路径一样匹配控制器,并将呈现它的相应视图。 IIRC {{view}}尚未了解容器。