我得到了一个带有相关spine.js控制器的html元素aside.sidebar。
class App.Sidebar extends Spine.Controller
tag: 'aside'
className: 'sidebar'如何从元素中获取控制器?如下所示:
con = $("aside.sidebar").spineController().someControllerMethod()我使用的是jquery + spine.js。
发布于 2013-07-23 00:46:24
我看过控制器的源代码,看起来没有一种内置的方法可以从元素(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()https://stackoverflow.com/questions/17789597
复制相似问题