我想知道在通过骨干渲染视图后是否有办法调用函数。问题是,我想调用的函数需要一个由骨干提供的html元素。实际上,我正在使用'ipywidgets'的python模块,它允许创建完全是主干视图的自定义小部件。
以下是视图代码:
var TestView = widget.DOMWidgetView.extend({
render: function() {
var template = _.template( $("#editor_template").html(), {} );
this.$el.html(template);
this.model.on('change:value', this.backToFront, this);
//return this;
},
backToFront: function() {
//$("#editor").val(this.model.get('script_ldp'))
editor.getSession().setValue(this.model.get('value'));
console.log("python change value " + this.model.get('value'));
},
events: {'click':'frontToBack'},
frontToBack: function(event){
this.model.set('value', editor.getSession().getValue());
this.touch();
console.log("js change value " + this.model.get('value'));
}});
这段代码会在页面上显示一个html textarea,完成之后,我应该将这个textarea转换为其他东西(ace编辑器),通过它的'id'从DOM中获取它。
如果我这样做:document.getElementById('textarea_id_returned_by_render')
它会返回null
。我也试过that因为它对我不起作用,可能是因为我正在使用的python模块,我的意思是我没有使用纯 backbone.js。