var view= Backbone.View.extend({
el: 'body',
template: doT.template(tpl),
initialize: function () {
this.model = new Model();
this.model.on('sync',this.render,this);
//this.model.on('sync',this.render(),this);
this.model.fetch();
},
render: function (e) {
console.log(this.model.toJSON())
},
});
return view;
this.model.on('sync',this.render(),this);
this.render,this.render()是因为backbone的机制照成的么,一个是数据回来时执行,一个是立即执行;
这个有什么知识点
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
首先要搞清楚下面语句的语义
this.model.on('sync',this.render,this);
在model的sync事件发生时,执行render函数
也就是将render函数添加到sync事件的执行序列中,等待sync事件的发生
这个问题也就是:
不是backbone的机制,是javascript就是这样的啊,函数名后面加括弧就是函数调用。
this.model.on('sync', this.render(), this);
这里你使用了this.render()
来调用函数,就会立刻执行,然后将这个函数的执行结果作为on
函数的参数。