Thanks Rob ... curious as to why this example only shows one instance of 
the greeting-tag?

Should their not be two on the page?


On Friday, March 21, 2014 2:02:13 PM UTC-4, Rob Dodson wrote:
>
> Hey Mike,
>
> Another thing to note: since salutations is an exposed property of the 
> element you can also set it externally using javascript.
>
> <script>
>     document.addEventListener('polymer-ready', function() {
>       var greeting = document.querySelector('greeting-tag');
>       greeting.salutations = [{what: "Sup", who: "Dude"}];
>     });
> </script>
>
> Here's an example which demonstrates both 
> approaches.<http://jsbin.com/cabac/5/edit>
>
> On Friday, March 21, 2014 7:58:07 AM UTC-7, [email protected] wrote:
>>
>> That works ... thanks Rob!
>>
>> On Thursday, March 20, 2014 5:48:19 PM UTC-4, Rob Dodson wrote:
>>>
>>> propertyChanged handlers will still work:
>>>
>>>   <polymer-element name="greeting-tag" attributes="salutations">
>>>     <template>
>>>       <ul>
>>>         <template id="greeting" repeat="{{s in salutations}}">
>>>           <li>{{s.what}}: <input type="text" value="{{s.who}}"></li>
>>>         </template>
>>>       </ul>
>>>     </template>
>>>     <script>
>>>       Polymer('greeting-tag', {
>>>         created: function() {
>>>           this.salutations = [];
>>>         },
>>>         salutationsChanged: function(oldVal, newVal) {
>>>           console.log(newVal); // shows 2 objects
>>>         }
>>>       });
>>>     </script>
>>>   </polymer-element>
>>>
>>>
>>> Example: http://jsbin.com/noxij/21/edit
>>>
>>> On Thursday, March 20, 2014 2:38:02 PM UTC-7, [email protected]:
>>>>
>>>> Thanks Rob ... that works
>>>>
>>>> A follow up question ... how do I add property change notification on 
>>>> salutations in this instance?
>>>>
>>>> I know that for simple properties, I can do a propertyChanged event
>>>>
>>>> How does that work for objects/array of objects?
>>>>
>>>> much appreciated. 
>>>>  
>>>>
>>>> On Thursday, March 20, 2014 5:04:36 PM UTC-4, Rob Dodson wrote:
>>>>>
>>>>> Hey Mike,
>>>>>
>>>>> This one was actually a little tricky :)
>>>>>
>>>>> So you *can* pass in an Array of values but there are two gotchas:
>>>>>
>>>>> 1. You've got to do it using the created callback, not ready
>>>>> 2. You've got to use valid JSON style quotes for your keys and values.
>>>>>
>>>>> Here's a solution for you:
>>>>>
>>>>>   <polymer-element name="greeting-tag" attributes="salutations">
>>>>>     <template>
>>>>>       <ul>
>>>>>         <template id="greeting" repeat="{{s in salutations}}">
>>>>>           <li>{{s.what}}: <input type="text" value="{{s.who}}"></li>
>>>>>         </template>
>>>>>       </ul>
>>>>>     </template>
>>>>>     <script>
>>>>>       Polymer('greeting-tag', {
>>>>>         created: function() {
>>>>>           this.salutations = [];
>>>>>         }
>>>>>       });
>>>>>     </script>
>>>>>   </polymer-element>
>>>>>   
>>>>>   <!-- Note, you've got to use valid JSON style for the quotes -->  
>>>>>   <greeting-tag salutations='[{"what": "Sup", "who": "Dude"}, {"what": 
>>>>> "Hi", "who": "Rob"}]'>
>>>>>   </greeting-tag>
>>>>>
>>>>> Example jsbin: http://jsbin.com/noxij/17/edit
>>>>>
>>>>>
>>>>> On Thu, Mar 20, 2014 at 11:09 AM, <[email protected]> wrote:
>>>>>
>>>>>> In the example below, how do I expose a property/attribute that takes 
>>>>>> salutations as an object (array in this case)? Basically I want to be 
>>>>>> able 
>>>>>> to get/set saluations on the element from the host page?
>>>>>>
>>>>>> <polymer-element name="greeting-tag">
>>>>>>   <template>
>>>>>>     <ul>
>>>>>>       <template id="greeting" repeat="{{s in salutations}}">
>>>>>>         <li>{{s.what}}: <input type="text" value="{{s.who}}"></li>
>>>>>>       </template>
>>>>>>     </ul>
>>>>>>   </template>
>>>>>>   <script>
>>>>>>     Polymer('greeting-tag', {
>>>>>>       ready: function() {
>>>>>>         this.salutations = [
>>>>>>           {what: 'Hello', who: 'World'},
>>>>>>           {what: 'GoodBye', who: 'DOM APIs'},
>>>>>>           {what: 'Hello', who: 'Declarative'},
>>>>>>           {what: 'GoodBye', who: 'Imperative'}
>>>>>>         ];
>>>>>>       }
>>>>>>     });
>>>>>>   </script></polymer-element>
>>>>>>
>>>>>>  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/787ae588-211d-42b6-940a-1fc04fe7bd14%40googlegroups.com<https://groups.google.com/d/msgid/polymer-dev/787ae588-211d-42b6-940a-1fc04fe7bd14%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>> .
>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>
>>>>>
>>>>>

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/5ce3d157-43a1-466a-a223-8e6e370403c1%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to