Iron-ajax не может прочитать файл json

Я использую приложение Polymer, инициализированное с помощью Polymer Starter Kit в моем первом представлении. Я хочу прочитать файл JSON внутри <paper-listbox>и создать <paper-item> для каждого элемента массива:

Вот код для моего <paper-listbox>:

<paper-listbox>
    <iron-ajax auto url="/listActivities.json" handle-as="json" last-response="{{activities}}" id="ajaxLoader"></iron-ajax>
    <template is="dom-repeat" items="{{activities}}">
        <paper-icon-item>
            <iron-icon icon="star" item-icon></iron-icon>
            <paper-item-body two-line>
              <div><span>{{item.label}}</span></div>
              <div secondary>Unit game number : <span>{{item.unitGames.length}}</span></div>
            </paper-item-body>
        </paper-icon-item>
    </template>
  </paper-listbox>

Вот мой файл JSON:

[
{
    "_id":"58dbcb30dc0b2a01553c59a9",
    "staticMedia":"58d52d626575de2207193fac",
    "label":"myfirstgame",
    "__v":0,
    "unitGames":["58dbcaa5dc0b2a01553c59a8"]
},
{
    "_id":"58dd1d3edc0b2a01553c59af",
    "staticMedia":"58d12091241b0868bfb29a3b",
    "label":"Jeu à l'IUT",
    "__v":0,
    "unitGames":["58dd1b61dc0b2a01553c59ab"]
},
{
    "_id":"58dd23e14704644b4ab307e6",
    "staticMedia":"58d12091241b0868bfb29a3b",
    "label":"IUT",
    "__v":0,
    "unitGames":["58dd23ba4704644b4ab307e4"]
},
{
    "_id":"58e008d67d08713351f0af13",
    "staticMedia":"58d52d626575de2207193fac",
    "label":"Test POI clue",
    "__v":0,
    "unitGames":["58e008b97d08713351f0af12"]
},
{
    "_id":"58e10d2d7d08713351f0af22",
    "label":"Prunus MLG",
    "__v":0,
    "unitGames":["58e10d167d08713351f0af21"]
}
]

Приложению не нужна каждая часть моего файла JSON (нужны только label а также unitGames). Когда я запускаю приложение, оно ничего не показывает после заголовка представления. Как это исправить?

2 ответа

Решение

Проблема возникла из-за пути URL к моему JSON-файлу: "/" перед именем файла не требовалось, поскольку файл находился в той же папке, что и my-view1.html.

Возможно, вам не хватает одного или нескольких импортов HTML, необходимых для компонента:

<link rel="import" href="../iron-ajax/iron-ajax.html">
<link rel="import" href="../iron-icon/iron-icon.html">
<link rel="import" href="../iron-icons/iron-icons.html">
<link rel="import" href="../paper-listbox/paper-listbox.html">
<link rel="import" href="../paper-item/paper-item.html">
<link rel="import" href="../paper-item/paper-icon-item.html">
<link rel="import" href="../paper-item/paper-item-body.html">

С импортом выше и вашим listActivities.json, этот plunker Демо производит:

Скриншот

Другие вопросы по тегам