Chrome浏览器应用中的Chrome存储API不会更新变量

时间:2014-07-10 22:01:19

标签: javascript angularjs google-chrome google-chrome-storage

我正在努力解决一段代码问题。我是javascript的新手,我已经搜索了几天而无法找到答案。

我正在使用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}},日志显示数据已被检索,但它不会反映所显示的数据。

非常感谢你!

1 个答案:

答案 0 :(得分:0)

你不应该在$ scope中保存这两个vaues并将你的html元素标记为绑定吗? e.g。

$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上看到更新。

希望它有所帮助!