【发布时间】:2013-12-14 20:49:07
【问题描述】:
我目前正在使用 EmberJS 开发地图应用程序,使用 ember-leaflet 来显示地图。请参阅此 jsFiddle 了解我当前的设置:
我的问题是,我没有将点击事件委托给PlacesNewController,只有当/places/new 路由打开时。
我的第一次尝试
从MapView -> PlacesController -> PlacesNewController 委托click 事件,但在我更改路线后,这也处理了点击事件并向地图添加了一个标记,因为PlacesNewController 还活着.
我的第二次尝试
然后我尝试了 Embers Evented mixin。在我从MapView -> PlacesController 委托事件之后,我触发了一个事件。我将PlacesNewController 绑定到PlacesNewRoute.activate 上的此事件并在PlacesNewRoute.deactivate 上取消绑定它。主要问题是,我无法从事件处理函数中访问PlacesNewController 的模型。
上述两种解决方案似乎都不是“余烬之道”。我认为对于这样的事情有更好的解决方案。也许有人可以帮我解决这个问题。我认为,直接将地图事件委托给PlacesNewController 之类的方法是最简洁的解决方案,但我不知道如何使用 Ember 实现这一点。
编辑: 这是一个新的jsBin: http://emberjs.jsbin.com/uHOPOfi/23/edit
主要问题是,如果您第一次访问 /places 路由,正如预期的那样,zoom 和 isCloseEnough 的观察者不会被调用。之后,您转到/places/new,观察员正在按预期工作。但我不明白的是,为什么在回到/places 之后,观察者以及与他们一起的PlacesNewController 仍然活跃?我以为 Ember
【问题讨论】:
标签: ember.js