注意:我是主干js的新手
现在,当页面加载时,Model.fetch()被调用并且视图被更新。我想更改为单击按钮。
.HTML:
<div class="col-md-4">
<button type="button" id="btnMiningInfo" class="btn btn-default btn-lg">Mining Info</button>
<div class="highlight" id="miningInfo"></div>
</div>
视图:
var MiningInfoView = Backbone.View.extend({
id:'info',
class:'table table-hover',
template:_.template('<table><tbody><tr><td><span>Number Of Blocks</span></td>'+
'<td><span><%= blocks %> </span></td>'+
'</tr></tbody></table>'),
initialize: function() {
//this.model.on('change', this.render, this);
},
render: function() {
var attributes = this.model.toJSON();
this.$el.html(this.template(attributes));
}
});
var miningView = new MiningInfoView({model: miningModel});
miningView.render();
$('#miningInfo').html(miningView.el);
在这里,我已经注释掉了initialize
函数,以阻止它在页面加载时获取模型。
型
var MiningModel = Backbone.Model.extend({
url:'http://localhost:3000/getMiningInfo',
defaults: {
blocks: "",
},
parse: function(resp) {
return resp;
}
});
var miningModel = new MiningModel();
miningModel.fetch();
$("#btnMiningInfo").click(function(){
miningModel.fetch();
});
也许您只需要删除其中一个获取调用:
var miningModel = new MiningModel();
//Remove this fetch
miningModel.fetch();
这将在执行该部分代码时获取模型。但似乎您希望挖掘模型在单击时获取,您已经在此处实现了该模型:
$("#btnMiningInfo").click(function(){
miningModel.fetch();
});