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 に答える