2013-07-22 48 views
1
得到關聯的控制器

我得到了一個html元素aside.sidebar與關聯的spine.js控制器。Spine.js從元素

class App.Sidebar extends Spine.Controller 
    tag: 'aside' 
    className: 'sidebar' 

我該如何從元件獲得控制器?這樣的事情:

con = $("aside.sidebar").spineController().someControllerMethod() 

我正在使用jquery + spine.js。

回答

0

我已經看過控制器的源代碼,它看起來不像是有一種內置的方式從元素訪問控制器(https://github.com/spine/spine/blob/dev/src/spine.coffee#L482)。我要做的就是讓一個全局變量來保存控制器,這樣我可以從其他地方訪問它:

app = new App() 

# inside of App constructor: 
@foo_widget = new App.FooWidgetController() 

# from other non-spine code: 
app.foo_widget.method() 

另一種辦法是使用jQuery的數據()方法來做自己的關聯:

class App.FooWidgetController 
    constructor: -> 
    super 
    @el.data 'controller', this 

# from other code: 
$('#widget').data('controller').method() 
+0

非常感謝!在第二個選項中它必須是'@el.data'控制器',這是' – sebi

+0

感謝您的更正。 – Jewel