我正在努力解决一段代码问题。我是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}},日志显示数据已被检索,但它不会反映所显示的数据。
非常感谢你!
答案 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上看到更新。
希望它有所帮助!