我有以下ItemView(没有与视图关联的模型,它是一个非常基本的"形式"它有一个提交或取消和一个输入字段):
App.BasicForm = Backbone.Marionette.ItemView.extend({
template: "build/templates/basic-form.html",
tagName: "div",
attributes: {
id: "some-id",
style: "display: none;"
},
events: {
"click button#bf-submit": "bfSubmit",
"click button#bf-close": "bfClose"
},
bfSubmit: function() {
var bfInputField= document.getElementById('bfSomeData').value;
},
bfClose: function() {
this.$el.hide();
}
});
因此,默认情况下,此视图是隐藏的(但在App启动时会实例化。)
我想要一个按钮,当点击它时,只需将属性样式显示更改为阻止。
我可以这样轻松地做到这一点:
document.getElementById('bfBasicFormDiv').style.display = "block";
但是,我宁愿调用视图的$ el.attr并在那里进行编辑,其中包括:
App.BasicForm.$el.attr({style: "display: block;"});
然而,这会返回一个未定义的,我看不到检索视图属性的方法(使用.get()模型很容易),但这并不适用于视图。
感谢您的任何建议。
加里
答案 0 :(得分:1)
App.BasicForm
不是实例,因此它不包含元素。您需要初始化它,并且您将能够使用$el
:
var basicForm = new App.BasicForm({
el: document.getElementById('bfBasicFormDiv')
});
basicForm.$el.css({display: "block"});