结尾
学习html5、css、javascript这些基础知识,学习的渠道很多,就不多说了,例如,一些其他的优秀博客。但是本人觉得看书也很必要,可以节省很多时间,常见的javascript的书,例如:javascript的高级程序设计,是每位前端工程师必不可少的一本书,边看边用,了解js的一些基本知识,基本上很全面了,如果有时间可以读一些,js性能相关的书籍,以及设计者模式,在实践中都会用的到。
开源分享:docs.qq.com/doc/DSmRnRG…
/*
- 更新我的徽标 / rootScope.updateMyBadge = function() { if (localStorage.logined != '1') { rootScope.mybadge = ''; }else{ if (rootScope.medNoticeBadge_Sunny && rootScope.medNoticeBadge_Sunny != 0 ) { rootScope.medNoticeBadge_Sunny; } else { rootScope.mybadge = ''; } } } setTimeout(function(){ rootScope.updateMyBadge(); },21000); // 2秒后执行
其中$rootScope.mybadge为相应角标变量。其值来自于全局变量$rootScope.medNoticeBadge\_Sunny,而这个变量又来自于下面的方法体:
/*
- 已响应查询找药小红点 */ rootScope.updateMedNoticeBadge = function(num) { console.log(num); rootScope.medNoticeBadge = 0; if (localStorage.getItem('medNoticeBadge')) { rootScope.medNoticeBadge += num; } else { rootScope.medNoticeBadge += num; } localStorage.setItem('medNoticeBadge', rootScope.medNoticeBadge); rootScope.medNoticeBadge = localStorage.getItem('medNoticeBadge'); if (!rootScope.userinfo.logined) { localStorage.removeItem('medNoticeBadge'); rootScope.medNoticeBadge = 0; } }
以上方法体又是通过如下语句调用的:
/* *初次查询找药状况查询信息(只调用一次) */ rootScope.getmedNoticeBadge = function() { if (localStorage.logined == '1') { var data = { 'stat': "1" }; appCallServer(http, "9015", data, function(data) { localStorage.setItem('medNoticeBadge', 0); rootScope.updateMedNoticeBadge(data.cnt); }, function(data) { console.log("9015_找药状况:" + data.errtext); }); } }; rootScope.getmedNoticeBadge();
执行时出现了变量更新不及时的错误现象。导致角标显示异常。
通过阅读以上代码,发现变量均是通过rootScope传递的。为此自己通过延时执行角标变化的方法体。但这并不是一个良好的的项目组织层次。自己应该将控制角标变化的方法体封装成服务的形式,利用其单例特性解决数据不一致的情况。
自己尝试利用Factory单例特性创建服务,但是结果错误。代码如下:
myCtrl.factory('mybadgeService',function(http){ var mybadgeFactory = {}; mybadgeFactory.runMybadgeRequest = function(){ if (localStorage.logined == '1') { var data = { 'stat': "1" }; appCallServer(http, "9015", data, function(data) { console.log("9015_找药状况-查询成功:" + JSON.stringify(data)); return data.cnt; }, function(data) { console.log("9015_找药状况:" + data.errtext); return 0;
结尾
学习html5、css、javascript这些基础知识,学习的渠道很多,就不多说了,例如,一些其他的优秀博客。但是本人觉得看书也很必要,可以节省很多时间,常见的javascript的书,例如:javascript的高级程序设计,是每位前端工程师必不可少的一本书,边看边用,了解js的一些基本知识,基本上很全面了,如果有时间可以读一些,js性能相关的书籍,以及设计者模式,在实践中都会用的到。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】