2016-08-02 42 views
0

Ich versuche, ein neues Element zu erstellen, und ich möchte Daten von außerhalb des Elements mit Iron-Ajax binden. Ich habe so etwas wieWie Werte von Eisen-Ajax zu einem Element auf dem gleichen Niveau übergeben?

<iron-ajax ... last-response="{{myval}}"></iron-ajax> <my-elem values="{{myval}}"></my-elem> getan

mein Problem ist (und es wird mehrere Stunden (Tage gewesen?) Ich versuche, das Problem/Lösung zu finden) mein Element wird immer {{myval}} (string, auch wenn ich setze den Eigenschaftstyp auf Object) statt des Inhalts der JSON bekomme ich von Iron-Ajax, bin ich jetzt ziemlich verloren .. the demo code is here, the code of my element is here aber ich vermute, mein Problem ist wirklich in der Demo und nicht im Element .

Ich habe diese Art zu tun in polycast 26 gesehen, aber der Unterschied ist Rob macht das in einem Element, ich nicht, da mein Element die Daten bekommen sollte (das Element ist nicht verantwortlich, es herunterzuladen).

Hat jemand einen Rat dazu?

PS: Ich habe versucht, einen anderen Namen als Werte, aber es ändert nichts, ich habe auch versucht, den Funktionsnamen von an etwas anderes zu ändern, wenn dies ein Problem verursachen, ist es nicht darum.

Antwort

0

Die Datenbindung zwischen Elementen funktioniert nur innerhalb des lokalen DOM eines Polymerelements oder des speziellen dom-bind template element, das für diesen Zweck erstellt wurde.

Ihr Beispielcode:

<demo-snippet> 
    <template> 
    <iron-ajax auto url="/demo/d1.json" handle-as="json" last-response="{{myval}}"></iron-ajax> 
    <d3spark-element yleg="Watt" ymax="2000" values="{{myval}}"></d3spark-element> 
    </template> 
</demo-snippet> 

Sollte als nur funktionieren:

<template is="dom-bind"> 
    <iron-ajax last-response="{{myval}}"... 
    <d3spark-element values="[[myval]]"... 
</template> 

Ich glaube nicht, können Sie „Inhalt“ Knoten innerhalb demo-snippet und erwarten, dass die Datenbindung zwischen ihnen liefern zu arbeiten.

+0

Das war es, danke. Die Sache ist, ich habe nicht erwartet "magisch" zu arbeiten, aber ich hatte verstanden, dass dom-bind [nur zu erwarten war] (https://www.polymer-project.org/1.0/docs/devguide/templates#dom- binden), wenn Sie sich außerhalb eines Polymerelements befinden. [demo-snippet] (https://elements.polymer-project.org/elements/iron-demo-helpers) ** ist ** ein Element, also warum sollte es explizit darum gebeten werden, die Bindungen zu machen? – potens

+0

Tatsächlich lässt es das Element ein bisschen zu gut arbeiten, wenn ich die dom-bind hinzufüge, wird alles in der Vorlage verdoppelt ... – potens

+0

Dank amurdock auf slack, fand ich die Lösung, dom-bind sollte nicht gesetzt werden auf der Vorlage direkt nach dem Demo-Snippet, aber auf einer anderen Vorlage. – potens