如何在 backbone 中递增 ID

How to increment an ID in backbone

我正在尝试增加分配给 Backbone 中视图的 ID。使用下面的代码,每个元素的 ID 都为 1,我尝试了多种方法在不同位置使用 id++ 来递增 ID,这样我就可以根据元素的 ID 与它们进行交互。我正在使用以下代码来设置 ID。如果您能帮助找到将 ID 增加 1 的方法,我们将不胜感激。

 initialize:function(models, options){
        this.model.set("view",this);
        this.model.set("rank", 1, 'rank++');
        this.model.set("id", 1);
    },

不是很熟悉Backbone.js,但你总是可以使用全局变量。

var nextID = 1;
...
...
initialize: function(models, options){
        this.model.set("id", nextID++);
},

如果您只想在每次创建视图时增加 'id' 并避免创建任何全局变量,那么您可以使用 javascript 闭包来实现。

function counter(){
    var count=0;
    return function (){ return ++count;};
}
var increase = counter()

var View = Backbone.View.extend({
    initialize: function(model,options){
        var id = increase();
        this.model.set('id',id);
    }
});

现在,无论何时创建此视图的实例,其 ID 都会增加 1。 你可以在这里阅读更多关于闭包的信息 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures .