Измените значение в файле .ts и сохраните его в приложении. - PullRequest
0 голосов
/ 12 мая 2018

Мое приложение хранит данные в файле .ts. Функция позволяет изменить логическое значение (отображается) в этом файле. Есть ли способ сохранить эти изменения в файле? Я хотел бы, чтобы значения были сохранены, если пользователь закроет приложение и снова откроет его.

cards.ts

    export default
  {
    "cards": [
      {
        "id": "1",
        "question": "blabla",
        "answer": "blablabla",
        "hint": "blablablabla",
        "displayed": false,
...
      },
    ]
  };

cards.interface.ts

  export interface Card {
  id: string;
  question: string;
  answer: string;
  hint: string;
  displayed: boolean;
}

функция, которая изменяет значение

getRandom() {
    this.answerVisible = false;
    this.availableCards = this.cards.filter(card => !card.displayed);
    let rd = Math.floor(Math.random() * this.availableCards.length);
    this.randomCard = this.availableCards[rd];
    this.cards.find(card => card.id === this.randomCard.id).displayed = true;
  }
}

1 Ответ

0 голосов
/ 12 мая 2018

Используйте localStorage, в котором данные сохраняются до тех пор, пока пользователь вручную не очистит кеш браузера или пока ваше веб-приложение не очистит данные.
Рекомендуется использовать Ионическое хранилище при работе с приложением Ionic, которое использует SQLite при работе в собственном контексте приложения и при работе в Интернете или в качестве прогрессивного веб-приложения, хранилище попытается использовать IndexedDB, WebSQL и local storage,

Использование:

npm install --save @ionic/storage

Зарегистрируйте его в массиве импорта вашего корневого модуля

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

@NgModule({
  declarations: [
    // ...
  ],
  imports: [
    BrowserModule,
    IonicModule.forRoot(MyApp),
    IonicStorageModule.forRoot()
  ],
  bootstrap: [IonicApp],
  entryComponents: [
    // ...
  ],
  providers: [
    // ...
  ]
})
export class AppModule {}

Наконец, добавьте его в любой из ваших компонентов или страниц:

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

export class MyApp {
  constructor(private storage: Storage) { }

  ...

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

  // Or to get a key/value pair
  storage.get('age').then((val) => {
    console.log('Your age is', val);
  });
}

PS: см. Ссылку для ясного изображения и использования

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...