javascript - angular自定义的loading服务失效?
巴扎黑
巴扎黑 2017-04-10 16:00:48
[JavaScript讨论组]

目的的希望出现loading,三秒后出现show,同时loading消失。但是貌似改变ngif值得时候没反应?

<body ng-app="demo">
<p ng-controller="crtl">
    <p ng-if="!$kUser.isload.status">loading</p>
    <p ng-if="$kUser.isload.status">show</p>
</p>
<script src='../bower_components/angular/angular-1.3.0.js'></script>
<script>

    angular.module('demo', [])
            .controller('crtl', ['$scope', '$kUser', function($scope, $kUser) {
                $kUser.getList();
            }])
            .factory('$kUser', ['$rootScope', function($rootScope) {
                var _this = {};
                _this.isload = {
                    status:false
                };
                _this.getList = function() {
                    console.log(11)
                    setTimeout(function() {
                        $rootScope.$apply(function() {
                            console.log(_this.isload.status)
                            _this.isload = {
                                status:true
                            };
                            console.log(333)
                            console.log(_this.isload.status)
                        })
                    }, 3000);
                }
                return _this;
            }])
</script>
巴扎黑
巴扎黑

全部回复(1)
大家讲道理

首先,你html直接用了这个服务$kUser,那么你controller中要:

$scope.$kUser=$kUser;

其次不明白你此处为什么要用服务,我的建议是尽量不要让view直接去双向绑定服务。如下两种解决方式感觉更好:
1.不要在factory中去做,直接在controller中做定时回调。
2.如果非要用服务,那么只能controller依赖服务,不要再服务中操作view。你可以将服务写成promise,在controller中用。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号