2012-10-04 3 views
1

가능한 중복 :
Call methods of different views in Backbone.js전화 다른 기능

내가 backbone.js 새로운 오전과 내가 함께 backbone.js을 사용하고 있습니다 ASP.NET MVC 4

나는 deleteUser 함수가있는 SomeObject라는 전역 클래스가 있습니다. 이 함수는 MyView2에있는 버튼의 클릭 이벤트 중 하나와 바인드됩니다.

이 글로벌 함수/클래스와 다른 뷰에있는 다른 backbone.js 함수를 어떻게 호출합니까? 앱 조회의 MYVIEW 1

  • 전화 myMethodC의 MYVIEW 2
  • 전화 myMethodA의

    • 통화 myMethodB는

    이 나를 인도 해주십시오. 나는 아직도 백본을 배우고있다. 그리고 뭔가 잘못하고있을 수도있다. 감사합니다

    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 
    } 
    ... 
    }); 
    
  • +0

    @muistooshort PLS ** 이전 질문에서 다시 그와 다른 ** 전체 질문을 읽어 – Yasser

    답변

    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 
        } 
    ... 
    });