1

重複の可能性:
Backbone.js で異なるビューのメソッドを呼び出す

私は backbone.js を初めて使用し、ASP.NET MVC 4 で backbone.js を使用しています。

私は、deleteUser 関数を持つ SomeObject というグローバル クラスを持っています。この関数は、MyView2 にあるボタンのクリック イベントの 1 つにバインドされます。

このグローバル関数/クラスから、異なるビューに存在する次の backbone.js の異なる関数を呼び出すにはどうすればよいですか。

  • MyView 2 の myMethodB を呼び出す
  • MyView 1 の myMethodA を呼び出す
  • AppView の myMethodC を呼び出す

これについて私を案内してください。私はまだ backbone.js を学習中で、何か間違ったことをしている可能性があります。ありがとう

var SomeObject = function (Id, Name) {
    var self = this;
    this.Id = Id;
    this.Name = Name;
    this.deleteUser = function () {
        console.log(self.Id, self.Name);

        // call myMethodB of MyView 2
        // call myMethodA of MyView 1
        // call myMethodC of AppView
    };
};

var MyModel = Backbone.Model.extends({
});

// View for a Main Grid
var MyView1 = Backbone.View.extend({
...
myMethodA: function(){
 // do something with View 1
}
...
});


// View for subgrid in Main Grid
var MyView2 = Backbone.View.extend({
...
myMethodB: function(){
 // do something with View 2
}   
...
});

var AppView = Backbone.View.extend({
...
myMethodC: function(){
 // do something with App View 
}
...
});
4

1 に答える 1

1

バックボーン イベントを使用する必要があります - http://backbonejs.org/#Events

var SomeObject = function (Id, Name) {
    var self = this;
    this.Id = Id;
    this.Name = Name;
    this.deleteUser = function () {
        console.log(self.Id, self.Name);

        viewInstances.MyView2.trigger('eventFormyMethodB')
        viewInstances.MyView1.trigger('eventFormyMethodA')
        viewInstances.AppView.trigger('eventFormyMethodC')
    };
};

var viewInstances = {
    MyView2: new MyView2({...}),
    MyView1: new MyView1({...}),
    AppView: new AppView({...})
}

例えば

var AppView = Backbone.View.extend({
...
    events: {
        'eventFormyMethodC': 'myMethodC'
    },
    myMethodC: function(){
    // do something with App View 
    }
...
});
于 2012-10-05T10:09:55.507 に答える