0

私はコードに苦労しています。私はjavascriptが初めてで、数日間検索していますが、答えが見つかりません。

オフラインで使用するための情報を含む 2 つのオブジェクトを格納するために、AngularJs と Chrome Storage API を使用して Chrome アプリを作成しています。データをChromeストレージに正常に書き込み、取得しましたが、唯一の問題は、取得したデータを保存している変数がhtmlページを更新しないことです。

これは、Chrome Storage API で以前に保存されたデータを取得するために使用しているコードです。

   chrome.storage.local.get(null, function(result){

      app.headers = result.headersData;
      console.log('Headers recuperados');
      console.log(app.headers);

      app.maestros = result.maestrosData;
      console.log('Maestros recuperados');
      console.log(app.maestros);
  });

私のhtmlファイルには{{controller.maestros}}があり、ログにはデータが取得されたことが示されていますが、表示されたデータには反映されません。

事前にどうもありがとうございました!

4

1 に答える 1

0

これらの 2 つの値を $scope に保存し、html 要素がそれにバインドされるようにマークするべきではありませんか? 例えば

$scope.maestros = result.maestrosData

コールバックが Angular のコンテキスト外で実行されるという事実を考慮すると、割り当てを次のようにラップする必要がある場合があることに注意してください。

$scope.$apply(function() {... your assignments here...})

コードは次のようになります。

chrome.storage.local.get(null, function(result){

  $scope.$apply(function() {
    $scope.headers = result.headersData;
    $scope.maestros = result.maestrosData;
  }

});

これにより、Angular はこれらの値を HTML ファイルから強制的に更新する必要があります。

<input ng-model="maestros">

UI に更新が表示されます。

それが役に立てば幸い!

于 2014-12-09T17:52:11.017 に答える