【发布时间】:2013-07-25 21:06:11
【问题描述】:
我的 Ember 应用程序中有一系列 Google 地图标记,它们当前是在初始化程序中创建的,因为它们来自 JSON 提要,我只需要加载一次。
型号
App.Service = DS.Model.extend({
title: DS.attr('string'),
description: DS.attr('string'),
type: DS.attr('string'),
lat: DS.attr('string'),
lng: DS.attr('string'),
marker: DS.attr('object')
});
初始化器
Ember.Application.initializer({
name: "preloadServices",
initialize: function(container, application) {
$.getJSON('../services.page',function(data){
var services = data.services
$.each(services,function(index,service){
if(null != service.lat && null != service.lng){
var marker = new google.maps.Marker({
position: new google.maps.LatLng(service.lat,service.lng),
map: App.googleMap,
title: service.title,
icon: 'http://www.google.com/intl/en_us/mapfiles/ms/micons/green-dot.png'
});
var mapService = App.Service.createRecord({
id: service.id,
name: service.title,
type: service.type,
description: service.description,
lat: service.lat,
lng: service.lng,
marker: marker
});
}
google.maps.event.addListener(marker, 'click', function() {
//Redirect to service?
mapService.markerClick();
});
});
App.preloadFinished = true;
$('#loader-bg').fadeOut(600)
})
}
});
我想做的下一件事是在指向 service.show 的标记点击路由上,目前我无法找到一种方法来从控制器或视图以外的任何其他地方调用路由。有没有人有这样做的想法或替代方法?
【问题讨论】:
标签: google-maps google-maps-api-3 ember.js google-maps-markers