javascript - Angularjs $apply() 用于 $rootscope 变量?

标签 javascript angularjs cordova

我正在 ionic cordova 平台上工作。 在应用程序运行时,我正在读取存储在移动设备上的文件。

文件成功读取后,我正在存储数据并将其绑定(bind)到 $rootScope.Favorites;

但我的收藏夹地址没有约束力:

在警报中它显示返回的数据。但不更新 View

$cordovaFile.createDir('comMyTaxi', false).then(function(success) {
    $cordovaFile.checkFile('comMytaxi/myFavAdd.txt.gz').then(function(
        success) {
        alert('file found');
        $cordovaFile.readAsText('comMytaxi/myFavAdd.txt.gz').then(
            function(success) {
                //  alert(success);
                $rootScope.Favorites = [];
                var data = JSON.parse(success);
                if (data.length > 0) {
                    for (var v = 0; v < data.length; v++) {
                        $rootScope.Favorites.push(data[v]);
                    }
                    alert($rootScope.Favorites.length);
                }
            }, function(err) {
                //alert('err in reading');
            });
    }, function(err) {
        // alert('no file found');
    });
}, function(err) {
    // alert('fail file dir');
});

在内部 View 中,我直接绑定(bind) $rootScope.Favorites 变量

<div class="item item-button-right" ng-repeat="Address in Favorites">
                <i class="icon ion-ios7-location fontcolorMR FontSize24"></i>
                <span class="FontSize14 VerticalAlignTop">&nbsp;&nbsp;{{Address.Name}} {{Address.Street}} {{ Address.City}} {{ Address.PostCode}}</span>
                <button class="button button-clear" ng-click="removeFavorites($index)">
                    <i class="icon ion-ios7-trash FontColorB" ></i>
                </button>
            </div>

如何立即看到更改?

最佳答案

由于您正在从 Angular 世界之外填充数据,因此完成后您只需手动启动摘要循环:

if (data.length > 0) {
     for (var v = 0; v < data.length; v++) {
         $rootScope.Favorites.push(data[v]);
     }
     $rootScope.$apply();
 }

关于javascript - Angularjs $apply() 用于 $rootscope 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27420266/

相关文章:

javascript - 播放来自 YouTube 的视频时出现黑屏 : Phonegap Android

ios - 是否可以在iOS应用中使用Google日历?

javascript - 如何根据内容动态调整 Twitter Bootstrap 模式的大小

javascript - 如何使用 Jquery 在 Document Press 上滑动 Div

javascript - Nodejs脚本没有结束

javascript - AngularJS 在加载整个页面之前显示模型文本

javascript - 如何克服 CHtmlView 中的脚本错误?

javascript - 使用 AngularJS ng-repeat 时如何初始化本地范围内的属性

angularjs - 如何在 Angular 测试中重用辅助函数?

android - Android 是否支持其 WebView 中的点击事件?