我有一个与 Backbone 中的函数迭代有关的问题。
//View
var PanelView = BlockView.extend({
//BACKBONE PROPERTIES AND FUNCTIONS
className : 'panel',
initialize : function(){
BlockView.prototype.initialize.call(this);
},
//RENDERING FUNCTIONS FOR THINGS WITH COLLECTIONS
render : function(){
//check special properties
this.$el.css(this.model.get('css'));
this.renderType();
//render data from the blocks
if(this.model.get('collection')){
this.model.get('collection').each(this.renderBlock, this);
}else{
this.renderBlock(this.model.get('block'));
}
//return to the dialog
return this;
},
renderBlock : function(block){
var view = block.get('view');
var blockView = new view({model:block});
this.$el.append(blockView.render().el);
},
renderType : function(){
//if there is a collection, change the css of the blocks according to the display type of the panel.
if(this.model.get('collection')){
alert('rendering type');
switch(this.model.get('display').type){
case 'rows':
//change css of blocks to be in rows
this.model.setRows();
break;
case 'columns':
this.model.setColumns();
break;
case 'grid':
this.model.setGrid();
};
}
}
}); //View
//Model function
setColumns : function(){
if(this.get('collection')){
var block = this.get('collection').at(0);
block.get('css').width = 500 + '%';
console.log(this.get('collection').at(0));
}
},
这看起来很简单,到目前为止这个或每个。
在我遇到这个特定问题之前,每个功能都运行良好。出于某种原因,这会改变多个块的 css 值,即使它不应该这样做。
这个函数不会被多次调用,它只会发生一次。即使我在控制台中签出变量,它也会返回集合中的一个块。
谁能帮我确定为什么这段特定的代码会遍历多个对象?
我会附上所有的代码,但它有多个页面。这是唯一似乎运行异常的代码。任何帮助,将不胜感激!