сердечник ajax в полимерный элемент не выполняет функцию отклика

Не выполняйте функцию обработчика ответа, я не знаю, почему

За пределами бумажного элемента, используя document.getelemetbyid(), выполните ответ, но когда я помещаю его в бумажный элемент, ничего не делайте.

Вот мой код:

<link rel="import" href="bower_components/polymer/polymer.html">
<link rel="import" href="bower_components/core-ajax/core-ajax.html">
<polymer-element name="post-service" attributes="posts">
<template>
    <style>
        :host {
            display: none;
        }
    </style>

    <core-ajax auto url="http://yami-no-seire.hol.es/blog/api/get_recent_posts/" on-core-response="{{postsLoaded}}" handleAs="json">
    </core-ajax>
</template>
<script>
    Polymer({
        created: function () {
            this.posts = [];
        },

        /*AJAX Success Callback Method*/
        postsLoaded: function() {
        console.log("Ok");

            var respuesta = this.$.ajax

            /*document.querySelector('#student-table-template').model = {
                posts: e.detail.response
            };*/
            var data = respuesta.detail.response.posts,
                posts = [],
                el = document.createElement("div");
            // build custom object
            for (var i = 0; i < data.length; i++) {
                //escape title
                el.innerHTML = data[i].title;
                var title = el.innerHTML;
                //escape content
                el.innerHTML = data[i].excerpt;
                var excerpt = el.innerHTML;

                entradas.push({
                    url: data[i].url,
                    title: title,
                    excerpt: excerpt.replace('&nbsp;', ' ').replace('<p>', '').replace('</p>', ''),
                    modified: parseDate(data[i].modified),
                    name: data[i].author.name
                });
            }
            this.posts = posts;
        }
    });

    function parseDate(date) {
                var d = new Date(date);
                var months = ["January", "February", "March",
  "April", "May", "June", "July", "August", "September",
  "October", "November", "December"
];
                return d.getDate() + " - " + months[d.getMonth()] + " - " + d.getFullYear();
            };
</script>
</polymer-element>

Похоже, что core-ajax не обрабатывает запрос.


person Jordy Mendoza    schedule 21.03.2015    source источник


Ответы (1)


Автоматический поиск узлов

this.$.ajax

нацеливает элементы по атрибуту id, который отсутствует в вашем элементе core-ajax:

<core-ajax auto url="(my url)" id='ajax'...

Вот рабочий пример: Plunk

Изменить: вот как поймать ответ внутри postsLoaded:

 postsLoaded: function(e, detail, sender){

    console.log('postsLoaded');
    console.log(e.detail.response);
  },

Но если вы не получаете даже журнал «ОК», это может быть неправильный URL-адрес.

person Goce Ribeski    schedule 21.03.2015
comment
Ставлю ID, поставил все равно не показывает мне лог ОК из обработчика ответов - person Jordy Mendoza; 21.03.2015
comment
Я отредактировал свой URL-адрес, URL-адрес в порядке, без полимерного элемента, он отвечает правильно - person Jordy Mendoza; 23.03.2015