Я работаю над клиентом reddit с использованием полимера, чтобы проверить технологии веб-компонентов. Я начал с версии 0.5 и недавно вернулся к этому проекту. Это, когда я узнал, что у полимера был выпущен 1.0, поэтому я начал (как бы не продвинулся).Polymer 1.0 services issue
У меня есть служба, которая использует iron-ajax для запроса reddit api и поиска сообщений. Вот код:
<link rel="import" href="../../bower_components/polymer/polymer.html">
<link rel="import" href="../../bower_components/iron-ajax/iron-ajax.html">
<dom-module id="reddit-list-service">
<template>
<iron-ajax
url='https://www.reddit.com/new.json'
handle-as='json'
debounce-duration="300"
on-response='handleResponse'
debounce-duration="300"
auto>
</iron-ajax>
</template>
</dom-module>
<script>
(function() {
Polymer({
is: 'reddit-list-service',
properties: {
modhash: {
type: String,
value: function() {
return '';
}
},
posts: {
type: Array,
value: function() {
return [];
}
},
after: {
type: String,
value: function() {
return '';
}
}
},
// Update object properties from the ajax call response
handleResponse: function (resp) {
this.properties.modash = resp.detail.response.data.modhash;
this.properties.posts = resp.detail.response.data.children;
this.properties.after = resp.detail.response.data.after;
this.post = this.properties.posts; // just to try
console.log(this.properties.posts);
}
});
})();
</script>
Мой журнал показывает мне, что я получаю сообщения от API, и это здорово!
Вот проблема, когда я хочу, чтобы использовать эту услугу, чтобы составить список из массива сообщений я не могу понять, как получить их в свой список compoment, который находится ниже:
<link rel="import" href="../../bower_components/polymer/polymer.html">
<link rel="import" href="../reddit-list-service/reddit-list-service.html">
<dom-module id="reddit-post-list">
<template>
<reddit-list-service posts="{{posts}}">
</reddit-list-service>
<template is="dom-repeat" id="post-list" posts="{{posts}}">
<p>{{post.author}}</p>
<template>
</template>
</dom-module>
<script>
(function() {
Polymer({
is: 'reddit-post-list',
properties: {
},
});
})();
</script>
Я я несколько раз думал, что видел в документации, но не могу понять, что не так, свойство автора не появляется.
Любой ключ?
Это то же самое, как вопрос, который я поставил и ответил на себя [здесь] (http://stackoverflow.com/questions/30591409/using-polymer-ajax-response) –
Не видел ваш пост. Спасибо, все равно, что сделал трюк. – Fougere
Вы действительно не хотите 'reflectToAttribute: true', особенно для данных массива или объекта. Он спамает ваш DOM с потенциально массивным JSON и не нужен для привязки. –