У меня есть вопрос к библиотеке ember-leaflet
и правильному использованию всплывающих окон.Рендеринг шаблона просмотра или руля в листовке всплывающего окна
Следующий пример из ember-leaflet
website использует библиотеку для добавления маркеров и связанных всплывающих окон. Он также иллюстрирует, как добавлять контент для всплывающих окон посредством привязки содержимого.
RadMarkersApp = Ember.Application.create();
RadMarkersApp.MarkerLayer =
EmberLeaflet.MarkerLayer.extend(
EmberLeaflet.DraggableMixin,
EmberLeaflet.PopupMixin, {
popupContentBinding: 'content.title'
});
RadMarkersApp.MarkerCollectionLayer =
EmberLeaflet.MarkerCollectionLayer.extend({
content: [{
location: L.latLng(40.7127, -74.0060),
title: 'City Hall'}],
itemLayerClass: RadMarkersApp.MarkerLayer
});
RadMarkersApp.IndexView =
EmberLeaflet.MapView.extend({
childLayers: [
EmberLeaflet.DefaultTileLayer,
RadMarkersApp.MarkerCollectionLayer]});
Теперь я хотел бы иметь возможность использовать представление или шаблон Рули для popupContent
собственности здесь. Есть ли у кого-нибудь идеи, как это реализовать? Есть ли наилучшие методы для этого сценария?
Мой первый подход:
App.MarkerLayer =
EmberLeaflet.MarkerLayer.extend(
EmberLeaflet.PopupMixin, {
popupContent: function() {
// Render view (how to get?) or handlebars template
return Ember.TEMPLATES['popup-content'](this.get('content'))
}.property()
});
Это приводит к следующей ошибке:
Uncaught TypeError: Cannot call method 'push' of undefined
Надежда кто-то может помочь. Заранее спасибо!
Кажется немного «взломанным» для меня. Похоже, что он возится с внутренним состоянием Эмбера (я мог ошибаться, как новичок в Ember). В любом случае, вы когда-нибудь находили более чистый/лучший способ сделать это? – elsurudo
Просто попробовал это и получил следующую ошибку: «Неподготовлено TypeError: Object [object Object] не имеет метода« createChildView »». Советы? – elsurudo
Исправлено, заменив вашу первую строку в функции «view = this.view = this._parentLayer.createChildLayer (App.MapPopupView)». Возможно, из-за версий Ember ... Я получаю предупреждение о том, что «Использование defaultContainer больше не поддерживается. [DefaultContainer # lookup] см. Http://git.io/EKPpnA". Не знаю, что это значит, но придется заглядывать в него. – elsurudo