我有一个表示地图的组件,在我的控制器中执行操作后,我想调用组件上的方法以使地图居中。代码看起来像这样
App.PlacesController = Ember.Controller.extend({
actions : {
centerMap : function () {
// how to call from here to GoogleMapComponent.centerMap ??
}
}
});
App.GoogleMapComponent = Ember.Component.extend({
centerMap : function () {
}
});
模板
{{google-map}}
<button {{action "centerMap"}}>Center Map</button>
我找到了一种解决方法,但我认为这不是 Ember 的做法。
{{google-map viewName="mapView"}}
<button class="center-map">Center Map</button>
App.PlacesView = Ember.View.extend({
didInsertElement : function () {
this.$(".center-map").click(this.clickCenterMap.bind(this));
},
clickCenterMap : function () {
this.get("mapView").centerMap();
}
});