gpt4 book ai didi

javascript - 主干集合 .'at(index)' 正在返回多个元素

转载 作者:行者123 更新时间:2023-11-28 13:07:36 25 4
gpt4 key购买 nike

我有一个与 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));
}
},

这看起来很简单,到目前为止这个或每个。

在我遇到这个特定问题之前,每个功能都运行良好。出于某种原因,这改变了多个 block 的 css 值,即使它不应该。

此函数不会被多次调用,只会发生一次。即使当我在控制台中 check out 变量时,它也会返回集合中的一个 block 。

谁能帮我确定为什么这段特定的代码会遍历多个对象?

我会附上所有代码,但它的多页很长。这是唯一一段运行异常的代码。任何帮助,将不胜感激!

最佳答案

不要在每个函数调用中将其作为参数传递

    .each(this.renderBlock, this);

您发送的不是元素而是上下文。我认为如果你通过 item 应该可以正常工作。

    .each(this.renderBlock, item, this);

关于javascript - 主干集合 .'at(index)' 正在返回多个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15771104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com