如何在Angular服务中使用jQuery.cookie插件
发布时间:2020-12-17 07:07:31 所属栏目:安全 来源:网络整理
导读:我一直在尝试使用ngCookie在我的应用程序中存储和检索cookie.由于我无法设置使用ngCookie创建的cookie的路径或过期,我不得不寻找其他地方. 所以我试图使用这个jQuery cookie plugin. 但是,我无法弄清楚如何在角度服务中提供它.关于如何在控制器和服务中使用j
我一直在尝试使用ngCookie在我的应用程序中存储和检索cookie.由于我无法设置使用ngCookie创建的cookie的路径或过期,我不得不寻找其他地方.
所以我试图使用这个jQuery cookie plugin. 但是,我无法弄清楚如何在角度服务中提供它.关于如何在控制器和服务中使用jQuery插件的问题,答案一致指向使用指令,但我不认为在这种情况下这是正确的方法,因为cookie是控制器和服务应该知道的东西. 那么,有人会如何为Angular服务提供jQuery插件? 解决方法
您可以在工厂中封装jquery cookie API,以便公开一些类似的方法:
angular.module('MyApp',[]); angular.module('MyApp').factory('CookieFactory',function(){ return { getCookie: function(name){ return $.cookie(name); },getAllCookies: function(){ return $.cookie(); },setCookie: function(name,value){ return $.cookie(name,value); },deleteCookie: function(name){ return $.removeCookie(name); } } }); 但我们可以想象一下,当你获得cookie值时你想要做些什么.通过AngularJS的API承诺回调怎么办? 所以我们的工厂变成: angular.module('MyApp',function($q,$timeout){ return { getCookie: function(name){ var deferred = $q.defer(); $timeout(function() { deferred.resolve($.cookie(name)); },0); return deferred.promise; },deleteCookie: function(name){ return $.removeCookie(name); } } }); 然后你就可以在你的控制器中使用它: angular.module('MyApp').controller('CookieCtrl',function(CookieFactory) { CookieFactory.getCookie('mycookie').then(function(value){ //do that you want }); }); 在这里工作:http://plnkr.co/edit/6KoUtp?p=preview (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符
- 无法将PartialFunction放在scala类构造函数中
- 开发Shell脚本解决DOS安全Linux服务器生产案例
- angularjs – “外部”导航以纠正angular.js url(直接链接/
- angularjs – 角度绑定中的数学函数
- 使用Vim将Regex Search的结果保存到文件中
- angularjs – 角度资源调用和$q
- 如何使用Bootstrap和WITHOUT jQuery创建Angular2模态组件?
- angularjs – Angular ui.router,从子控制器调用父控制器函
- scala – 运行master的Spark ClassNotFoundException