小编phi*_*cat的帖子

angularjs:$ timeout使用率(服务内部)

我正在尝试制作一个小通知器,通知典型情况:需要授权,更改保存等.通知显示3秒钟后消失,如果用户没有点击它(如果通知点击,它立即消失).文档资料不多.我该怎么用$timeout,close();3秒后打电话?我怎样才能将变量(nId)放入函数中?我(*function(){return function(){}}*)在默认情况下尝试使用闭包setTimeOut(),但未成功.

myApp.controller('noticesCtrl',
    function noticesCtrl($scope, $rootScope, noticesData){
        $rootScope.notices = [];
        $scope.closeNotice = function(nId){
            noticesData.close(nId);
        };
    });

myApp.factory('noticesData', function($rootScope, $timeout){
    return{
        add: function(type, text){
            var nId = $rootScope.notices.length + 1;
            $rootScope.notices.push({id: nId, type:type, text:text+nId});
            // call close function with 3sec. delay; how?
        },
        close: function(nId){
            angular.forEach($rootScope.notices, function(notice, key){
                if(notice.id == nId){
                    $rootScope.notices.splice(key,1);
                }
            });
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

service closures timeout angularjs

8
推荐指数
1
解决办法
2万
查看次数

标签 统计

angularjs ×1

closures ×1

service ×1

timeout ×1