如何将ui-gmap-windows InfoWindow / Marker中的值传递给ui-sref?

爱兰

我正在尝试使用angular-google-maps模块的在Google Map的InfoWindow内部创建链接ui-gmap-windows

在我的HTML模板中,我有:

<ui-gmap-google-map center='main.map.center' zoom='main.map.zoom' options='main.map.options'>
     <ui-gmap-markers models="main.markers" coords="'self'" icon="'icon'" options="'options'" click="'onClick'" fit="true">
         <ui-gmap-windows show="'showWindow'" closeClick="'closeClick'" ng-cloak>
             <div class="mapinfowindow" data-ui-sref="display({id: id})">                                                                      
                 <span class="itemname" data-ng-non-bindable>{{ title }}</span>
             </div>
         </ui-gmap-windows>
     </ui-gmap-markers>
 </ui-gmap-google-map>

在我的控制器中,我有:

uiGmapGoogleMapApi.then(function(maps) {
  vm.itemlist = search.getItemList();                                                                                                                   
  var markers = [];
  _.each(vm.itemlist,function(item){
    search.getGeometry(item.href).then(function(marker) {
      marker.title      = item.en;
      marker.id         = item.href;
      marker.showWindow = false;
      marker.options    = {
                            title: item.en,
                            icon: markericon.normal
                          };
      marker.onClick    = function() { vm.markerClick(marker); };
      marker.closeClick = function() { vm.markerCloseClick(marker); };
      markers.push(marker);
    });
  });
  vm.markers = markers;
});

请注意,我使用的是“ controller as”语法,因此vm.markers控制器中的出现main.markers在html模板中。

我看到的问题是data-ui-sref="display({id: id})"html中的将状态更改为“显示”页面,但没有通过id$ stateParams值进行推送,这显然不好,因为我不知道要显示什么。 。

我在InfoWindow外部(在结果列表中)创建了指向同一页面的另一个链接,并且确实推送了id值:

<div data-ng-repeat="entry in main.itemlist">
    <div data-ui-sref="display({id: entry.id})">

非常感谢您对使InfoWindow的链接正常工作的任何帮助。

爱兰

根据https://github.com/angular-ui/angular-google-maps/issues/884中找到的信息,以下是我最终解决此问题的方法

我为InfoWindow创建了模板和单独的控制器,并将HTML更改为:

<ui-gmap-google-map center='main.map.center' zoom='main.map.zoom' options='main.map.options'>
    <ui-gmap-markers models="main.markers" coords="'self'" icon="'icon'" options="'options'" click="'onClick'" fit="true">
        <ui-gmap-windows show="'showWindow'" closeClick="'closeClick'" templateUrl="'templateUrl'" templateParameter="'templateParameter'" ng-cloak>
        </ui-gmap-windows>
    </ui-gmap-markers>
</ui-gmap-google-map>

如您所见,现在有两个新参数:templateUrltemplateParameter

在主控制器中,我输入了模板所需的信息:

...
marker.templateUrl = templateUrl;
marker.templateParameter = {
                             id:    item.id,
                             title: item.name,
                             href:  item.href,
                             img:   vm.lookup_extphoto[item.href] //getting a photo externally
                            };
...

在InfoWindow的模板中,我有:

<div data-ng-controller="infowindowTemplateController">
    <div class="mapinfowindow" data-ui-sref="display({id: parameter.id})">
        <div class="previewimage-container">
            <img data-ng-attr-src="{{:: parameter.img }}">
        </div>
        <span>{{:: parameter.title }}</span>
    </div>          
</div>

infowindowTemplateController本身几乎是空的:

(function(){
    'use strict';

     angular
         .module('myapp')
         .controller('infowindowTemplateController', infowindowTemplateController);

         infowindowTemplateController.$inject=['$scope'];
         function infowindowTemplateController ($scope) {
         }
})();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

gmap3将鼠标悬停在infowindow上

来自分类Dev

将复杂对象传递给ui-sref参数

来自分类Dev

动态ui-sref值

来自分类Dev

如何将带有URL的数据传递给ui-sref?

来自分类Dev

如何将重载选项放在ui-sref标记中

来自分类Dev

Angular:如何将图像插入使用ng-bind的<a ui-sref>中?

来自分类Dev

建模成ui-gmap-marker

来自分类Dev

为什么Angular Google Maps中的<ui-gmap-windows>元素需要ng-non-bindable?

来自分类Dev

为什么Angular Google Maps中的<ui-gmap-windows>元素需要ng-non-bindable?

来自分类Dev

在angularJS的ui-sref中调用方法

来自分类Dev

使用带有ui-router的ui-sref指令将变量传递给抽象父状态

来自分类Dev

我可以使用UI-Router和ui-sref将变量传递给控制器吗?

来自分类Dev

如何单击量角器中的ui-sref链接?

来自分类Dev

如何在链接的文本中插入angular的ui-sref?

来自分类Dev

ui-sref-active for nested status

来自分类Dev

根据条件禁用ui-sref

来自分类Dev

角度ui-sref编码参数

来自分类Dev

AngularJS ui-sref链接卡住了

来自分类Dev

ui-gmap-markers不起作用

来自分类Dev

我需要将参数和查询都传递给ui-sref

来自分类Dev

Map Controller中的ui-gmap-marker的标记单击事件未触发

来自分类Dev

如何使ui-sref通过element.append动态工作?

来自分类Dev

如何避免使用ui-sref进行URL编码

来自分类Dev

如何激活角度ui-sref的页面加载状态?

来自分类Dev

Google Maps Marker Clusterer-如何将infoWindow与位置索引一起使用

来自分类Dev

ui-sref在离子框架中无法生成正确的网址

来自分类Dev

ng-grid rowTemplate中的ui-sref

来自分类Dev

指令模板Angular Js中的动态ui-sref

来自分类Dev

UI-SREF 在 _layout.cshtml 中不起作用

Related 相关文章

热门标签

归档