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/88cb16d1-1464-4fc3-ad34-fa208e96486a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to