gpt4 book ai didi

angularjs:$timeout 用法(服务内部)

转载 作者:行者123 更新时间:2023-12-04 08:49:13 25 4
gpt4 key购买 nike

我正在尝试制作一个小通知程序,它会通知典型情况:需要授权、更改已保存等。如果用户没有点击它,通知会显示 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);
}
});
}
}
});

最佳答案

myApp.factory('noticesData', function($rootScope, $timeout){
var obj = {};
obj.add = function(type, text){
var nId = $rootScope.notices.length + 1;
$rootScope.notices.push({id: nId, type:type, text:text+nId});
$timeout(function(){
obj.close(nId);
},3000);
}
obj.close = function(nId){
angular.forEach($rootScope.notices, function(notice, key){
if(notice.id == nId){
$rootScope.notices.splice(key,1);
}
});
}
return obj;
});

关于angularjs:$timeout 用法(服务内部),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18692695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com