Как прочитать атрибут "name" моего json-массива в Ionic

Формат локального хранилища json-массива

Здравствуйте, я разрабатываю ионное приложение. Я новичок в Ionic и Typescript.

Как вы можете видеть на изображении ниже, я извлекаю из API свои данные в массиве json.

В ts файле я пишу этот код

` общедоступная категорияДетали: любые;

const datacat = JSON.parse (localStorage.getItem ('categoryData')); this.categoryDetails = datacat.categoryData; `

И в моем html файле, когда я пишу это

<h1 class = "business-top">Business of the category {{categoryDetails.name}}</h1>

Я получаю сообщение об ошибке «TypeError: не удается прочитать имя свойства undefined»

Я знаю, что неправильно читаю атрибут «имя». Как я могу это сделать?

Более того, как я могу отобразить компании, которые связаны с определенным term_id категории?

Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
0
0
193
2

Ответы 2

В этом примере вам нужно сделать это

<h1 class = "business-top">Business of the category {{categoryDetails?.name}}</h1>

public categoryDetails: any;

this.categoryDetails = localStorage.getItem('categoryData');

или вы можете использовать ионное хранилище. лучше, если вы используете ионный.

https://ionicframework.com/docs/storage/

import { Storage } from '@ionic/storage';

export class MyApp {
public categoryDetails: any;
  constructor(private storage: Storage) { }

  ...

  // set a key/value
  storage.set('categoryData', 'Max');

  // Or to get a key/value pair
  storage.get('categoryData').then((val) => {
    this.categoryDetails = val;
  });
}

Ваше первое предложение не сработало. Появится пустое поле, в котором должно отображаться название категории. Что касается второго, все мое приложение было основано на localStorage. Я получаю свои данные из Mysql DB в виде массивов Json. Как вы можете видеть на прилагаемой фотографии, пользовательские данные могут быть хорошо прочитаны с помощью const datacat = JSON.parse(localStorage.getItem('categoryData')); this.categoryDetails = datacat.categoryData;. Но все остальные Json, находящиеся в массивах, нельзя прочитать тем же методом? Как я могу прочитать атрибуты из businessData и CategoryData?

gmaniac7 05.12.2018 14:24

Я наконец выяснил это.

@Kilomat благодарит за вашу помощь и советы по использованию ионного хранилища. Это спасло меня от будущих проблем.

О моем файле json вот что я сделал.

В моем HTML-коде <ion-grid no-margin> <h1 class = "business-top">Επιχειρήσεις της κατηγορίας {{businessData.name}} {{businessData.term_id}}</h1> <ion-list> <ion-item class = "col col-50" *ngFor = "let c of BusinessCategoryDetails" text-wrap (click) = "product(c)"> <div *ngIf = "c.term_id == businessData.term_id"> <h2>{{c.post_title}} {{c.term_id}}</h2> <img width = "80" height = "80" src = "{{c.guid}}"> </div> </ion-item> </ion-list> </ion-grid>

И в моем коде TS `var businessCategory: Categories = navParams.get (" businessCategory "); console.info (businessCategory); / экспортирует выбранную категорию /

var newData = JSON.stringify(businessCategory);
this.businessData = JSON.parse(newData);`

Которая берет свойства и значения из моей предыдущей страницы категории. Код TS

`категории: [categoryDetails] = null;

gotobusiness (категория: категории) { this.navCtrl.push (BusinessPage, {businessCategory: category}); } `

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