Kembalikan nilai sederhana dari elemen polimer?

Saya telah berhasil menggunakan core-ajax untuk meneruskan objek json, tetapi saya ingin menulis elemen khusus yang dapat meneruskan nilai sederhana. Ini yang saya punya, tapi tidak berfungsi.

elemen testOutput

<link rel="import" href="../polymer/polymer.html">
<polymer-element name="testOutput">
    <template>
        This doesn't do anything but output a value.
    </template>
    <script>
        Polymer('testOutput', {
            response: "MyValue"
        });
    </script>
</polymer-element>

elemen input pengujian

<link rel="import" href="../polymer/polymer.html">
<polymer-element name="testInput" noscript attributes="input">
    <template>
        Here is the value from the other element:
        <h1>{{input}}</h1>
    </template>
</polymer-element>

index.html

<testOutput response="{{output}}"></testOutput>
<testInput input="{{output}}"></testInput>

keluaran

Ini tidak melakukan apa pun kecuali menghasilkan nilai.

Berikut adalah nilai dari elemen lainnya:


person JOATMON    schedule 04.08.2014    source sumber
comment
Lihat postingan ini: stackoverflow.com/q/25050120/723693   -  person ain    schedule 04.08.2014
comment
Saya seharusnya mencatat bahwa saya menggunakan templat pengikatan otomatis. Maaf.   -  person JOATMON    schedule 04.08.2014


Jawaban (3)


Saya hanya perlu mempublikasikan variabel respon di elemen output saya. Anda dapat melakukan ini dengan memasukkannya ke dalam atribut atau menggunakan fungsi publikasikan.

<polymer-element name="testOutput" attributes="response">

or

    Polymer('testOutput', {
        publish: {
            response: "MyValue"
        }
    });
person JOATMON    schedule 04.08.2014

Saya pikir tanggapan Anda harus berupa suatu fungsi.

Polymer('testOutput', {
        response: function() { return "MyValue" };
    });
person tire0011    schedule 04.08.2014

Saya pikir ada dua cara untuk melakukannya

Cara pertama

Anda perlu membuat elemen tempat Anda ingin mendapatkan data:

<polymer-element name="first-element">
    <template>

    </template>
    <script>
    Polymer('first-element',{
        needPass: 'I am Passed'
    });
    </script>
</polymer-element>

Setelah itu Anda perlu mendapatkan elemen pertama menggunakan querySelector dan mendapatkan data

<link rel="import" href="/id../../bower_components/polymer/polymer.html">

<polymer-element name="second-element">
    <template>
        <style>
            :host{
                width: 100%;
                height: 100%;
            }
        </style>
        <h1>{{passed}}</h1>
    </template>
    <script>
    Polymer('second-element',{

        passed: '',
        ready: function(){

            var first_el = document.querySelector('first-element');
            this.passed = first_el.needPass;
        }
    });
    </script>
</polymer-element>

Daripada memanggil elemen ke dalam indeks Anda

<first-element></first-element>
<second-element></second-element>

Cara kedua

Atau Anda dapat memanggil elemen pertama ke elemen kedua

elemen pertama:

<link rel="import" href="/id../../bower_components/polymer/polymer.html">

<polymer-element name="first-element" attributes="needPass">
    <template>

    </template>
    <script>
    Polymer('first-element',{
        needPass: 'I am Passed'
    });
    </script>
</polymer-element>

elemen kedua

<link rel="import" href="/id../../bower_components/polymer/polymer.html">

<link rel="import" href="/idfirst-element.html">

<polymer-element name="second-element">
    <template>
        <style>
            :host{
                width: 100%;
                height: 100%;
            }
        </style>
        <first-element needPass="{{needPass}}"></first-element>
        <h1>{{needPass}}</h1>
    </template>
    <script>
    Polymer('second-element',{
        ready: function(){
        }
    });
    </script>
</polymer-element>

dan hanya memanggil elemen kedua ke dalam indeks

Saya harap ini membantu Anda.

PS: Saya menguji kodenya.

person Donearh    schedule 05.08.2014