首页 > 解决方案 > 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 还很陌生,所以这可能是我所缺少的非常简单的东西。

感谢您的任何帮助,您可以提供!

标签: javascriptangularjselectron

解决方案


由于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;
        });
    });
});

推荐阅读