Try this in your auto-binding template
...
  <hill-station lat="{{$.map.latt}" lng="{{$.map.llng}"></hill-station>
...
  <gmap-element id="map"></gmap-element>
..

I'm not 100% positive this works in auto-binding templates, but this works 
when other polymer elements. You shouldn't need events in this case when 
you're sharing simple values. 


On Tuesday, March 3, 2015 at 7:36:02 AM UTC-5, [email protected] wrote:
>
> Hi,
> I am trying to communicate between two polymer elements which are probably 
> not typical bound in a "prent-child" relationship.
> Here is what I am trying to do (using scaffold):
>
> I have one polymer element where I am binding a list of places (drawer) 
> and the other one is the main which is holding a simple <google-map> 
> element wrapped inside my custom element.
>
> My objective is to click on a place listed in drawer panel and pass the 
> lat/lng values to the custom map element which would eventually be passed 
> to latitude and longitude values of <google-map> so that it pans itself 
> according to the latest values.
>
> I am reading https://www.polymer-project.org/articles/communication.html 
> but somehow I am getting lost somewhere.
>
> Below are my elements:
>
> 1. Google Map custom element
> ---------------------------------------------------
> <polymer-element name="gmap-element" attributes="latt lngg">
>   <template>
>     <link rel="stylesheet" href="gmap-element.css">
>     <style>
>       google-map{
>           width:100%;
>           height:100%;
>       }
>
>     </style>
>     <div flex>
>         <google-map id="google-map" latitude="{{latt}}" 
> longitude="{{lngg}}" zoom="9" fit mapType="satellite">
>             <google-map-marker latitude="{{latt}}" longitude="{{lngg}}" 
> draggable></google-map-marker>
>         </google-map>
>     </div>
>   </template>
>   <script>
>     (function (document) {
>         //Reference URL: 
> http://stackoverflow.com/questions/28374352/auto-binding-dart-is-not-working-fails-with-bad-state-error
>         Polymer('gmap-element', {
>             publish:{
>                 latt: 32.2167785,
>                 lngg: 76.319165
>             },
>             panMap: function(){
>                 this.fire('pan-map', {latt: this.latt, lngg: this.lngg})
>             }
>         });
>     })(wrap(document));
>   </script>
> </polymer-element>
>
>
> 2. Places custom element
> --------------------------------------------------
> <polymer-element name="hill-station" attributes="lat lng">
>   <template>
>     <link rel="stylesheet" href="hill-station.css">
>         <template repeat="{{location in locations}}">
>             <core-item icon="settings" label="{{location.name}}">
>                 <a href="javascript:;" on-tap={{showLocation}}></a>
>             </core-item>
>         </template>
>   </template>
>   <script>
>     (function () {
>       Polymer('hill-station', {
>         ready: function(){
>             this.locations = [
>                 {"name" : "Dharamsala", "state": "Himachal Pradesh", 
> "lat": 32.2167785, "lng": 76.319165},
>                 {"name" : "Manali", "state": "Himachal Pradesh", "lat": 
> 32.236378, "lng": 77.1871198},
>                 {"name" : "Shimla", "state": "Himachal Pradesh", "lat": 
> 31.0782194, "lng": 77.1590212},
>                 {"name" : "Rudraprayag", "state": "Uttarakhand", "lat": 
> 30.2853912, "lng": 78.9797152},
>                 {"name" : "Kedarnath", "state": "Uttarakhand", "lat": 
> 30.7344815, "lng": 79.0669351},
>                 {"name" : "Auli", "state": "Uttarakhand", "lat": 
> 30.9494166, "lng": 77.7478028},
>                 {"name" : "Darjeeling", "state": "West Bengal", "lat": 
> 27.0331949, "lng": 88.2646751},
>                 {"name" : "Bindu", "state": "West Bengal", "lat": 
> 27.1003216, "lng": 88.8709563},
>             ];
>         },
>         showLocation: function(e, detail, sender){
>             var loc = e.target.templateInstance.model.location;
>             /*var myMap=document.querySelector("#app_map");
>             alert(myMap);*/
>             alert(loc.name + ". " + loc.lat + ". " + loc.lng);
>             /*this.fire('location-selected', {lat: this.lat, lng: 
> this.lng});*/
>         },
>       });
>     })();
>   </script>
> </polymer-element>
>
> 3. Index.html
> --------------------------------------------------
> <template is="auto-binding" id="app">
>             <core-drawer-panel>
>                 <!-- Drawer -->
>                 <core-header-panel drawer>
>                     <!-- Drawer Toolbar -->
>                     <core-toolbar>Hill Stations of India</core-toolbar>
>                     <!-- Drawer Content -->
>                     <core-menu>
>                         <!--<user-list></user-list>-->
>                         <hill-station></hill-station>
>                     </core-menu>
>                 </core-header-panel>
>                 <!-- Main -->
>                 <core-header-panel main>
>                     <!-- Main Toolbar -->
>                     <core-toolbar>
>                         <paper-icon-button icon="menu" 
> core-drawer-toggle></paper-icon-button>
>                         <span>{{appName}}</span>
>                     </core-toolbar>
>                     <div id="main_map_area">
>                         <gmap-element></gmap-element>
>                     </div>
>                 </core-header-panel>
>             </core-drawer-panel>
>         </template>
>
> Looking forward to your suggestion as I am pretty new to the world of 
> Polymer!
>
> Regards,
> Subrata Sarkar
>
>
> On Wednesday, 27 August 2014 18:44:47 UTC+5:30, Darshan Udayashankar wrote:
>>
>> Hi All,
>>
>> I have 2 polymer elements in which I am listing the data using repeat 
>> option. Inside the same polymer, am using 1 more polymer element which we 
>> need provide the option to sort and filter the list based on the selection 
>> in the HTML Select control.
>>
>> I saw the *Communication and Message Passing *available in the Polymer 
>> documentation, There the messages are sent from Parent Element to Child 
>> Element. In my scenario I need to do it the other way. Based on the 
>> selection in the client (HTML Select Control) I need to filter or sort the 
>> list.
>>
>> Please let me know is there any Polymer alternative for HTML Select 
>> Control and if possible please provide a link with sample which will of 
>> great help.
>>
>> Thanks in advance.
>>
>> Regards
>> Darshan
>>
>> *HIPAA Confidentiality Message:* Any document(s) and/or message(s) 
>> within this electronic transmission may contain confidential and 
>> proprietary information that is intended only for the authorized 
>> recipient(s).  This communication belongs to the sender who is legally 
>> privileged. If you are not the intended recipient, or if you have received 
>> this email in error, you are hereby requested to notify the sender 
>> immediately and delete the email and any attachment(s). Disclosure, 
>> copying, distribution or taking action according to the content is strictly 
>> prohibited.
>>
>

Follow Polymer on Google+: plus.google.com/107187849809354688692
--- 
You received this message because you are subscribed to the Google Groups 
"Polymer" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/polymer-dev/60d75955-f2bc-4173-8f25-028528585bac%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to