我得到了一个带有关联spine.js控制器的html元素aside.sidebar
。
class App.Sidebar extends Spine.Controller
tag: 'aside'
className: 'sidebar'
如何从元素中获取控制器?像这样的东西:
con = $("aside.sidebar").spineController().someControllerMethod()
我使用的是jquery + spine.js。
答案 0 :(得分: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的data()方法自己进行关联:
class App.FooWidgetController
constructor: ->
super
@el.data 'controller', this
# from other code:
$('#widget').data('controller').method()