/ / zmätený o polyméroch publikovaných atribútoch - polymér

zmätení o polyméroch publikovaných atribútov - polyméru

Mám kopať na ajax-core element polyméru, kód ako nasledujúce funguje dobre:

<core-ajax url="./ajax-test.txt" auto response="{{resp}}"></core-ajax>
<textarea value="{{resp}}"></textarea>

Môžem získať hodnotu od {{resp}} v tomto prípade. Mám kopať do zdrojového kódu core-ajax a zistiť, ako sa to vykonalo:

  1. urobiť response nastavený atribút attributes="response ..."
  2. prejsť ajax odpoveď na this.response

potom som sa snažil vybudovať vlastný ajax komponent, ale to nefungovalo, môj ajax kód komponentu je:

Polymer("louis-ajax", {
url: "",
response: null,
ready: function() {
xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
this.response = xmlhttp.responseText;
}
}.bind(this);
xmlhttp.open("GET",this.url,true);
xmlhttp.send();
}
});

a kód mojej aplikácie je tento:

<louis-ajax url="http://polymer.snspay.cn/api/posts.json" response="{{response}}"></louis-ajax>
<span>We have got the ajax response as</span> : <input type="text" value="{{response}}" />

Výsledkom je požiadavka ajaxÚspešne vykonaná, ale hodnota vstupu je "{{response}}", nie hodnota {{response}}, takže si myslím, že je niečo zle o tom, ako chápem publikované atribúty prácu, akúkoľvek pomoc? THK.

odpovede:

5 pre odpoveď č. 1

Viem, že ste povedali, že ste na to prišli, ale pre ostatných, ktorí prichádzajú na túto stránku, hľadajú riešenie a vysvetlenie, tu to je.

Ak chcete viazať údaje bez toho, aby ste museli vytvoriť vlastný prvok, musíte svoj kód vložiť do šablóny pomocou is atribút nastavený na auto-binding:

<template is="auto-binding">
<core-ajax url="./ajax-test.txt" auto response="{{resp}}"></core-ajax>
<textarea value="{{resp}}"></textarea>
</template>

Bez toho, Polymer vyhral "t vedieť, že je potrebné pripojiť väzby vo vašom html, a veci ako {{resp}} bude považovaný za text.

Podrobnejšie vysvetlenie nájdete tu: http://www.polymer-project.org/docs/polymer/databinding-advanced.html#autobinding