2

我通过 $.each 创建视图,所有视图的 myId 属性总是最终被最后一个元素的 myId 覆盖。

创建视图

 $('.form').each(function() {
        // split class name
        var classNameArray = $(this).attr('class').split('-');
        // get typeId from last part of classname
        var myId = classNameArray[classNameArray.length-1];
        new myView({ 'el': $('.form-' + myId), 'myId': myId });      
    });

初始化我的视图

var myView = Backbone.View.extend({
events: {

},
initialize: function() {
    var myId = this.options.myId;

},
test: function() {
    console.log(myId); // will return myId of last view created
}

});

如何获得视图以保持其唯一的 myId?

4

2 回答 2

2

当你这样写——

initialize: function() {
    var myId = this.options.myId;
},

它为初始化函数创建了一个本地变量(这是 Javascript 的东西,而不是 Backbone 的东西)。

试试这个(创建一个View对象的本地变量):

initialize: function() {
    this.myId = this.options.myId;
},
于 2012-06-18T20:18:01.390 回答
0
于 2012-06-18T21:06:45.857 回答