2012-05-01 4 views

답변

3

사용자 정의 이벤트는 글로벌 될 필요가 없습니다. 컨트롤러 인스턴스별로 이벤트를 트리거/바인드 할 수 있지만 컨트롤러 클래스별로 이벤트를 바인드 할 수는 없습니다. 당신이 PresenterController.bind처럼 ("연설") 뭔가를 얻을 수 없다 그러나 예를

class PresenterController extends Spine.Controller 
    giveSpeech: (message) -> 
    @trigger("speech",message) 

class App extends Spine.Controller 
    addKeynote: -> 
    @speaker = new PresenterController 
    @speaker.bind("speech",@listen) 
    listen: (message) => 
    alert("I heard " + message) 

를 들어

이유는 모델이 클래스에 방법을 추가 @extend Event를 사용하지만, 컨트롤러 @include Event를 사용 이 메서드는 인스턴스에에 메서드를 추가합니다. 모델은 트리거, 바인드 및 바인딩 해제의 자체 구현을 정의하므로 인스턴스 바인딩을 갖는 모양을 실현합니다.

1

당신은 당신이와 방법을 정의 할 필요가이

Spine.bind "Create", @create 

같은 방법으로 이벤트를 바인딩 할 수 있습니다 당신이

Spine.trigger "Create" 

처럼 척추의 이벤트를 다른 컨트롤러를하고 트리거 할 수 있습니다 이 컨트롤러에서 이름을 만듭니다 :

사용자 지정 이벤트가 전역이므로 컨트롤러 이름을 접두어로 사용하십시오. 당신은 컨트롤러 명을 사용할 수 있습니다 : 예를 들어 만들기 :

Spine.trigger "ControllerName:Create"