サーバーからJSON形式のスケジュールデータを取得し、それを使用してdom-repeatを使用してスケジュールをレンダリングしようとしています。約束事から得られたポリマーにデータバインディング値を設定する
JSONをハードコードするとコードは正常に動作しますが、フェッチを使用して設定しても機能しません。
<link rel="import" href="../bower_components/polymer/polymer.html">
<dom-module id="xl-schedule">
<template>
<h1> Excel Schedule </h1>
<template is="dom-repeat" items="{{schedule}}">
<div># <span>{{index}}</span></div>
<div>Event name: <span>{{item.name}}</span></div>
<div>Date: <span>{{item.date}}</span></div>
</template>
<script>
Polymer({
is: 'xl-schedule',
ready: function() {
// this.schedule =
// [
// {
// "name": "Event1",
// "date": "5/10/2016"
// },
// {
// "name": "Event2",
// "date": "5/10/2016"
// },
// {
// "name": "Event3",
// "date": "5/10/2016"
// }
// ];
fetch('resources/schedule.json').
then(function (response) {
return response.json();
}).
then(function (response) {
this.schedule = response;
console.log("response",JSON.stringify(response));
})
.catch(function(err) {
console.log("err",err);
});
}
});
あなたはバインディングみましたこれは
this
はあなたが誤って意図しないthis
でthis.schedule
に割り当てるときに便利(フェイルファスト)エラーを引き起こすことになる、undefined
滞在する原因となります'this'を2回目の' then'コールバック関数または矢印関数を使用していますか? – Alan