这就是我创建的方式:
一个实现,您在中间有主视图,在这种情况下为 codemirror。并且可以在顶部或底部添加更多视图。
App.EditorView = Ember.View.extend({
templateName: 'editor-view',
topView: Ember.ContainerView.extend(),
bottomView: Ember.ContainerView.extend(),
CodeMirrorView: Ember.TextArea.extend({
didInsertElement: function() {
this.codeMirror = CodeMirror.fromTextArea(this.get('element'));
}
})
});
模板:
<script type="text/x-handlebars" data-template-name="editor-view">
{{view view.topView viewName="topViewInstance"}}
{{view view.CodeMirrorView}}
{{view view.bottomView viewName="bottomViewInstance"}}
</script>
表示自定义组件的视图:
App.MyComponent = Ember.View.extend({
templateName: 'click-here',
message: null,
click: function() {
alert(this.get('message'));
}
});
实施:
App.MyEditorView = App.EditorView.extend({
didInsertElement: function() {
this._super();
this.get('topViewInstance').pushObject(App.MyComponent.create({ message: "Hello" }));
this.get('bottomViewInstance').pushObject(App.MyComponent.create({ message: "World" }));
}
});
这样可以创建一个新实例,或者App.EditorView
在顶部或底部扩展和插入更多视图。因为topView
andbottomView
是Ember.ContainerView
s,所有添加的视图都将具有绑定、事件和其他 ember 特性。
看看那个 jsbin 看看它工作http://jsbin.com/ucanam/686/edit