And by the way I can't see my console logging (states loaded) either, so it 
seems the provider doesn't run properly.

Am Mittwoch, 10. Juni 2015 15:32:12 UTC+2 schrieb Thomas Kuchs:
>
> Hi Robert,
>
> thx for your reply. I want to use Polymer 1.0 and changed the 
> datat-provider. Unfortunately I can't get it to work.
>
> data-provider looks this way right now:
>
> <link rel="import" href="../polymer/polymer.html">
> <link rel="import" href="../iron-ajax/iron-ajax.html">
> <dom-module id="data-provider" is="dom-bind">
>     <template>
>         <iron-ajax
>            auto
>            url="application-states.json"
>            last-response="{{statesLoaded}}"
>            handle-as="json"
>            verbose="true">
>         </iron-ajax>
>     </template>
>     <script>
>      Polymer({
>       is: 'data-provider',
>       properties: {
>         states: {
>           type: Array,
>           value:  function() { return []; }
>         }
>       },
>       statesLoaded: function() {
>         // Make a copy of the loaded data
>         this.states = this.$.ajax.response.slice(0);
>         console.log('states loaded ' + this.ajaxResponse);
>       }
>     });
>   </script>
> </dom-module>
>
>
> and the template like this
>
> <link rel="import" href="../polymer/polymer.html">
> <link rel="import" href="../application-state/application-state.html">
> <link rel="import" href="data-provider.html">
>
> <dom-module id="application-states">
>   <template>
>
>      <data-provider id="provider" states="{{states}}"></data-provider>
>
>      <template is="dom-repeat" items="{{states}}">
>          <template is="dom-repeat" items="{{item.address}}">
>             <application-state name="{{item.address}}"
>                                value="{{item.value}}"
>                                generation="{{item.generation}}"
>                                version="{{item.version}}">
>             </application-state>
>          </template>
>       </template>
>   </template>
>   <script>
>     Polymer({
>       is: 'application-states'
>     });
>   </script>
> </dom-module>
>
>
> So at the moment there are no more JS errors, but the preview stays empty. 
> So I guess the data-binding between provider and template doesn't work.
> I don't know why.
>
> Could someone have a look?
> Thanks
>
> Am Dienstag, 9. Juni 2015 16:35:17 UTC+2 schrieb Robert Simon:
>>
>> Hi Thomas,
>>
>> first decide if you are writing old polymer element with polymer-element 
>> as you are using in "data-provider", or new 1.0 with dom-module and keep 
>> them version compatible.
>> Than mby debugging will be easier.
>>
>> And yes, immutable data is good practice.
>>
>> Regards
>> Robert
>>
>> On Tuesday, June 9, 2015 at 3:03:48 PM UTC+2, Thomas Kuchs wrote:
>>>
>>> Hi,
>>>
>>> I try to get sample data from a JSON file to fill my template with 
>>> repeatable elements based on the original tutorial (with post-service) and 
>>> the new sample on the 1.0 homepage (friend-list).
>>> My JSON looks like that:
>>>
>>> [
>>>   {
>>>     "address": {
>>>       "Value": "ip:port",
>>>       "Generation": xyz,
>>>       "Version": 123
>>>     },
>>>     "alive": {
>>>       "Value": "false",
>>>       "Generation": xyz,
>>>       "Version": 123 
>>>     },
>>>     "name": {
>>>       "Value": "foo",
>>>       "Generation": xyz,
>>>       "Version": 123
>>>     },
>>>     "version": {
>>>       "Value": "2015.06.01.009",
>>>       "Generation": xyz,
>>>       "Version": 123
>>>     }
>>>   }
>>> ]
>>>
>>>
>>> Now I tried to create a data-provider (like post-service from first 
>>> tutorial) in the following way
>>>
>>> <link rel="import" href="../polymer/polymer.html">
>>> <link rel="import" href="../iron-ajax/iron-ajax.html">
>>> <polymer-element name="data-provider" attributes="states">
>>>       <iron-ajax
>>>          auto
>>>          url="application-states.json"
>>>          last-response="{{statesLoaded}}"
>>>          handleAs="json"
>>>          debounce-duration="300"
>>>          verbose="true">
>>>       </iron-ajax>
>>>   </template>
>>>   <script>
>>> Polymer('data-provider', {
>>>   created: function() {
>>>     this.states = [];
>>>   },
>>>   statesLoaded: function() {
>>>     // Make a copy of the loaded data
>>>     this.states = this.$.ajax.response.slice(0);
>>>   },
>>> });
>>> </script>
>>>
>>>
>>> and my custom element which uses the provider
>>>
>>> <link rel="import" href="../polymer/polymer.html">
>>> <link rel="import" href="data-provider.html">
>>>
>>> <dom-module id="application-states">
>>>   <template>
>>>      <template is="dom-repeat" items="{{states}}">
>>>         <application-state name="{{item.address}}"
>>>                            value="{{item.value}}"
>>>                            generation="{{item.generation}}"
>>>                            version="{{item.version}}">
>>>         </application-state>
>>>       </template>
>>>   </template>
>>>
>>>
>>> Unfortunately I get the following JS error, when previewing the element 
>>> with polyserve.
>>>
>>> mutating the [[Prototype]] of an object will cause your code to run very 
>>> slowly; instead create the object with the correct initial [[Prototype]] 
>>> TypeError: prototype.registerCallback is not a function
>>>
>>> Any suggestions?
>>>
>>> Thx in advance
>>>
>>> Am Sonntag, 10. Mai 2015 22:51:51 UTC+2 schrieb Thad Humphries:
>>>>
>>>> I can use iron-ajax with Polymer 0.9.0-rc1 to retrieve a JSON object 
>>>> and display a value in the template like so:
>>>>
>>>> <dom-module id="my-element">
>>>>   <template>
>>>>     <iron-ajax url="
>>>> http://api.openweathermap.org/data/2.5/weather?type=accurate&units=imperial&cnt=1&q=Charlottesville
>>>> "
>>>>
>>>> auto last-response="{{resp}}"></iron-ajax>
>>>>
>>>>     <textarea value="{{resp.main.temp}}"></textarea>
>>>>   </template>
>>>> </dom-module>
>>>>
>>>> <script>
>>>>   Polymer({
>>>>     is: 'my-element',
>>>>     properties: {
>>>>       resp: { 
>>>>         type: Object 
>>>>       } 
>>>>     }
>>>>   });
>>>> </script>
>>>>
>>>>
>>>> This also works with a simple JSON object retrieved from a public HTML 
>>>> directory on my localhost. However I try to access an object in an array, 
>>>> I'm told the object is undefined. For example, if the JSON array contains 
>>>> two objects called "queries", <textarea 
>>>> value="{{resp.queries}}"></textarea> displays "[object Object],[object 
>>>> Object]". However if I attempt, <textarea 
>>>> value="{{resp.queries[0]}}"></textarea> or <textarea 
>>>> value="{{resp.queries[0].title}}"></textarea>, the displayed value is "
>>>> undefined".
>>>>
>>>> Am I doing something wrong? Is this a known shortcoming? Is there a 
>>>> work around?
>>>>
>>>

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/231b841c-28ea-42d0-acad-6ee8f040631b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to