手动插入视图

Manually inserting a view

我正在使用第三方库 typeaheadjs 作为 ajax 下拉菜单。

我想在每个下拉元素中呈现一个 ember 视图,typeahead 支持为此提供建议挂钩。我需要它是一个 propper Ember.Handlebars 绑定,因为有时我的 ember-data 模型 displayKey 将需要对服务器的多个请求,因为我所有的模型关系都是 { async : true }

            suggestion: function(model){ //this hook is part of the typeahead api
                var view = Ember.View.create({
                    model : model,
                    template: Ember.Handlebars.compile('Hello {{model.id}}')
                }).createElement();

                return view.element; //need to return the html tag to render within each <li>
            },

model 是一个 ember 数据模型。 return 元素需要是 html 才能插入到每个 <li> 标记中。以下工作但绑定 {{model.id}} 从未呈现,我只是得到 Hello.

知道为什么吗?我想我不是 运行 一个会启动绑定之类的函数。

已编译模板的默认上下文是视图的控制器。所以将 model : model 替换为 controller : model.

您还可以通过以下方式从模板访问视图的属性:

'Hello {{view.model.id}}'