在我的backbone.js视图中,我有一个函数,其中包含以下代码。我通常会使用this.addLayerToList()
调用此函数,但因为它位于$.each
这个。不是我想要的。有人可以帮忙吗?我如何从$.each
调用我的函数addLayerToList?
initLayerList: function(){
$.each(baseLayers, function() {
this.addLayerToList(this);
});
},
addLayerToList : function() {
//...some code here
}
答案 0 :(得分:2)
这应该有用。
initLayerList: function(){
var that = this;
$.each(baseLayers, function(idx, layer) {
that.addLayerToList(layer);
});
},
addLayerToList : function() {
//...some code here
}
答案 1 :(得分:1)
由于您使用的是Backbone,因此您也可以使用Underscore.js。您可以使用Underscore的each方法,该方法可以将this
传递到循环的上下文中:
initLayerList: function(){
_.each(baseLayers, function(layer){
this.addLayerToList(layer);
}, this);
},
addLayerToList : function() {
//...some code here
}
如果baselyayers是Backbone collection,您可以进一步简化代码:
initLayerList: function(){
baseLayers.each(function(layer){
this.addLayerToList(layer);
}, this);
}