Chrome Хранение с Angular -Материалом - не записывается, значение читается как неопределенное - PullRequest
0 голосов
/ 02 апреля 2020

Я сделал небольшой тестовый проект, чтобы узнать, как использовать хранилище Google, и он не работает. Он не выдает никаких ошибок, он просто не пишет. Если я зачитаю значение ключа, он просто возвращает неопределенное. Я поставлю свой код ниже ...

манифест. json -

{
    "manifest_version": 2,
    "name": "DataTest",
    "version": "1.0",
    "browser_action": {
        "default_icon": "favicon.ico",
        "default_popup": "index.html",
        "default_title": "Data Test"
      },
    "permissions": [
        "storage"
      ]
}

index. html просто содержит мой app.component - вот мое приложение. компонент. html

<mat-form-field>
  <mat-label>Input</mat-label>
  <input matInput [(ngModel)]='myText'>
</mat-form-field>
<br>
<button mat-stroked-button (click)="saveChanges()" color='accent'>Save Text</button>
<button mat-stroked-button (click)="printText()" color='primary'>print stored value</button>

и это мой файл app.component.ts

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'dataStoreTest';
  myText = '';

  printText(){
    var currentText = chrome.storage.local.get(['storedText'], function(){});  // <-------- btw, for some reason if I don't have a callback function it breaks... is it required or am I using chrome.storage wrong?
    console.log(currentText);
  }

  saveChanges() {
    var txt = this.myText;
    chrome.storage.local.set({'storedText': txt});
  }

}

1 Ответ

0 голосов
/ 02 апреля 2020

Как указал мне wOxxOm, chrome .storage.get не имеет возвращаемого значения, он просто обращается к хранилищу. Вот почему требуется функция обратного вызова. Это было исправлено путем изменения моей функции app.compoent.ts printText () на -

printText(){
    chrome.storage.local.get(['storedText'], function(value){
      console.log(value);
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...