Hello i am not able to catch onclick events in the events object in backbone. I am using the link_to in rails to generate the link. Can someone help me out here: HTML :
<div id="flash-messages">
<ul>
<li style="opacity: 1;">
<li style="opacity: 1;">
<li style="opacity: 1;">
<div class="alert alert-info">
<a id="consent-link" href="#">See here for more informationnn.</a>
<a class="controls close" aria-hidden="true" data-dismiss="alert" href="#">
<i class="icon-cancel fontLoaded"></i>
</a>
JS code
module.exports = View.extend({
template: template,
events: {
'click #btnSubmitModal': 'saveConsent',
'click #consent-link' : 'openConsent'
},
openConsent: function(event){
event.preventDefault();
console.log ("asaasagsgsgs");
view = new modalView({model: this.model})
},
答案 0 :(得分:0)
来自文档:
模板 view.template([data])
虽然模板的模板不是直接提供的功能 Backbone,定义模板函数通常是一个很好的约定 对你的看法。通过这种方式,渲染视图时,您就拥有了 方便地访问实例数据。例如,使用Underscore 模板:
var LibraryView = Backbone.View.extend({
template: _.template(...)
});
因此,template是一个自定义属性,可用于指向模板函数。定义这个是不够的,您必须通过将数据传递给模板函数来创建实际模板,并将生成的HTML
附加到views元素。
类似的东西:
module.exports = View.extend({
initialize: function(){
this.render();
},
template: Handlebars.compile(template), // where template is the handle bars template
events: {
'click #btnSubmitModal': 'saveConsent',
'click #consent-link' : 'openConsent'
},
render: function(){
this.$el.append(this.template(data)); //where data is the data you wish to pass to handle bars template function
},
openConsent: function(event){
event.preventDefault();
console.log ("asaasagsgsgs");
view = new modalView({model: this.model})
}
});
事件处理程序的作用域是(委托给)视图的元素。将HTML
附加到视图的元素后(如上例中的render
方法所示),事件将开始工作。