javascript - AngularJS范围变量设置不正确
问题描述
我正在使用electron-json-storage
并且正在尝试设置 AngularJS$scope
变量设置为等于存储的数据。
下面是我的代码:
portal.controller('portalViewController', function($scope) {
//$scope.url = "http://www.google.com"; //correctly sets $scope.url to google.com
storage.get('portal_url', (err, data) => {
console.log(data.url); //prints out data as it should
$scope.url = data.url;
});
});
正如你所看到的,我有这个工作的每个单独的组件,但是当我将它们组合起来时,$scope.url
似乎并没有设置好。我已经坚持了一段时间了,无法弄清楚问题是什么。我对 AngularJS 还很陌生,所以这可能是我所缺少的非常简单的东西。
感谢您的任何帮助,您可以提供!
解决方案
由于storage
似乎是第三方插件,因此任何更改$scope
都不会执行摘要循环。用于$timeout
强制执行摘要循环,以便在 UI 中呈现更改。
portal.controller('portalViewController', function($scope, $timeout) {
storage.get('portal_url', (err, data) => {
console.log(data.url); //prints out data as it should
$timeout(function(){
$scope.url = data.url;
});
});
});
推荐阅读
- asp.net - Microsoft Graph - Outlook Api - 如何获取创建的事件的 ID?
- prometheus - Prometheus 和 Node Exporter 架构
- c - c - 创建线程并将它们加入一个 for 循环
- node.js - 如何使用 axios nodejs 将二进制流从字符串内容发送到第三方 api
- c# - 使用 app.UseStatusCodePagesWithReExecute 时如何返回原始 http 方法
- c - 如何获取具有指向结构的指针的结构字段?
- c# - 如何将对象移动到鼠标单击时存储的目标?
- vue.js - 在 Vue 应用程序中无法适应 mapbox-gl 中的边界
- r - 通过将列的元素与其他列的名称“相乘”来转换数据框
- git - git push --force 后最后 10 天的工作丢失