AngularJs用ng-click,ng-if等轻松实现购物车功能

用angulajs里面的ng-model实现input的默认值,ng-click来实现点击,用ng-if来判断“购物车清单”是否需要显示,用ng-repeate来实现购物车里面的内容的循环输出。 HTML代码如下 <body ng-app="app"> <div ng-controller="FCtrl"> <h2>{{data2.msg}}</h2> <input type="text" ng-model="data2.shopcart['0']"> </div> <div ng-controller="Shopping"> <input type="text" class="formcontrol" ng-model="goods"> <span class="input-group-btn"> <div class="button" ng-click="buy()">添加</div> </span> <h1 ng-if="shopcart.length>0">购物车清单</h1> <ul class="list-group"> <li ng-repeat="item in shopcart track by $index">{{item}} <a ng-click="shopcart.splice($index,1)">删除</a></li> </ul> </div> </body> Javascript代码如下: angular.module(“app”, []) .controller(‘FCtrl’, function($scope, Data2) { $scope.data2 = Data2; }).controller(‘Shopping’, Read more…

如何在不用密码的情况下删除360企业版(360天擎)

部分企业会要求用户安装360企业版,美其名曰为了保护职工电脑,但是360软件占用内存大,弄得低配置用户苦不堪言,非常厌恶,但是在电脑的控制面板里面又卸载不了,会提示 请输入360私有云密码 下面教大家一个办法帮助卸载360天擎 在360安全卫士安装文件夹中,查找含有ent的文件,将他们删除。删除的时候可以使用文件粉碎机、unlocker等等。删完后,就可以正常卸载了。 不行的话,还可以用系统光盘或者U盘,进入他们的PE系统, 在PE系统中可以直接删除整个360safe文件夹。 原理应该很简单 就是企业版有验证文件。将这些文件删除就不需要密码验证了。ent就是enterprise(企业)的简称,所以删除ent文件就可以了。至于具体是哪一个文件,大家不需要知道。直接将所有的企业版文件删除拉倒。 删除的文件如下: 转载原文 http://bbs.360safe.com/thread-883017-2-1.html

Java语言中的String和byte[]的相互转化

有些东西很基础,但是得理解透彻才行。 String s = “shadowprompt”;//String变量 byte b[] = s.getBytes();//String转换为byte[] String t = new String(b);//bytep[]转换为String 做JAVA经常会碰到中文乱码问题,还有各种编码的问题,特别是String类的内容需要重新编码的问题。要解决这些问题,必须了解清楚JAVA对于字符串是怎么处理的。 1. “字符”是由数字来表示的 先来重新了解一下计算机是如何处理“字符”的,这个原理是大家必须记住的,特别是在用JAVA写程序的时候,万万不可模糊。我们知道,计算机把任何东西都用数字来表示,“字符”也不例外。比如我们要显示一个阿拉伯数字“3”,在我们的PC里,其实并不是仅仅用一个数字3来代表我们要写的“3”,而是以十六进制的0x33来代表,包括放在内存或者是写到文件里,其实都是写着0x33的,不信你可以编辑一个文本文件,写一个“3”,然后用ultraEdit看他的原始码。 2. 一切“字符”都必定用数字+编码表表示。 这时候,有一个问题:为什么一定要用0x33来代表“3”呢?而不用0x43来代表呢?或者是直接用0x03来代替?其实用什么来代表都可以,只不过大家都习惯了用ASCII编码表(是美国国家信息交换表)来确定各字符应该是用什么数字代表的。同样,为了表示中国字,我国也指定了中文的编码表,其中最广泛使用的是GB2312。比如中文的“当”字,就是用0xB5, 0xB1这两个八位的数字来表示的。所以如果显示字符的程序不知道一列数字到底是按什么编码表编码的,他也无法去判断到底这些是什么文字。如果随便用一个不对的编码表来处理这些数字,处理出来的字符很可能完全是错的。比如在英文系统上,没有GB2312编码表,送给他一个0xB5,0xB1,他就傻傻的当作ASCII来处理(操作系统通常都有自己默认的编码表),结果显示出来就是两个奇怪的符号,因为这两个字在ASCII表里就是那两个符号。同样在繁体中文系统里,他的编码表是BIG5,显示出来也是一个奇怪的中文,不是“当”字。 3. UNICODE让全世界都说一种语言 看完上面的文字,是否觉得,世界有那么多语言,每个都有自己的一套编码表,很麻烦呢?就算是中文,也有两套流行的编码表,一个是GB2312,一个是BIG5。要使用不同中文的编码的字符时,还要转来转去,的确很麻烦。不光这个,如果想要写一篇包含很多过国文字的文章,就麻烦了,必须要让处理这个文章的程序知道,哪个字是什么编码标准的。如果你想要在文章里找一个字,也必须指定你要找的是哪种编码的哪个字。否则,你要找一个0xB5,0xB1的中文“当”字,很可能把同样数字表示的日文、波兰文这些不相干的字一起给你找出来,够麻烦的吧! 所以人们想,不如大家都用同一个编码标准吧,各种文字都在编码表里有一席之地,处理文字的程序只需要都按这个编码表来处理就可以了。不过要一个编码表里包含所有的文字,这张表就大了,本来英文字+数字一共只有128个以内。但加上中文后,忽然就多了数万个,所以存放一个字符需要的大小也大了很多。现在UNICODE规定了一个字符必须由2个8位数字来表示,想想,8x8x8x8x = 65536 ,是多大的一个数字啊!所以全世界的文字才能都包含进去。当然拉,也有人说中国字可能都不止6万个拉,还要包括别的文字,但人家外国人觉得你们中国人常用的也没那么多,所以就这么定了,我们也没办法。需要注意的是GB2312和UNICODE虽然都是用两个8位数来代表一个中文字,但具体的规格可不一样,比如0xB5,0xB1在UNICODE里面可不是“当”字,而是另外一国的文字来的。 4. C是如何简洁的处理字符的 我们来谈谈C的字符串。C语言诞生在JAVA之前,C语言的基本数据类型是没有字符串这个类型的,它只有char[]。也就是C把字符顺序放入一个字节数组就完了。而且C也不管放在数组里的是什么文字,也不管那些字是按什么编码标准的。而且他的char的大小也不一定是8位数字,有时候是16位也可能,这要看具体的机器和操作系统。所以写程序的人必须要知道正在处理的char[]的内容到底是按什么编码表表示的字符串,要知道如果比较两国文字是否相同,可是没任何意义的哦! 5. JAVA是是如何处理字符的。 世界总会进步的,JAVA就是一个例子。JAVA终于有了String类了,它是解决字符问题的最好工具。在JAVA里,一个基本的要点是:String类对象是不需要指定编码表的!为什么它会自己知道一堆数字各代表什么字符呢?就是因为String里的字符信息是用UNICODE编码存放的。而JAVA为了表示字符(注意是单个字符),也有char这个数据类型,而且他的大小是固定2个8位16进制数字长度,也就是0~65535罗。为的就是对应UNICODE里面的一个字符。大家如果想取一个String里的按UNICODE数字,可以用getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 方法取得一个char[],这个char[]里就是表示String字符的,按UNICODE编码表编码的数字。 可惜现在绝大多数的系统和程序都不是按UNICODE来处理字符,而JAVA程序总是要和别的程序和系统交换数据的,所以在接收一个字符,或者是发送一个字符的时候,就必须要留意当前系统和UNICODE的关系了。比如你从网络或者文件接受到一数字:0xB5,0xB1,JAVA程序并不知道这两个字到底是中文呢?还是日文,或者英文。你如果不指明这个两个数字的编码表,JAVA就会按当前系统默认的编码表来处理。如果这两个数字是从中文WIN98发出去的,JAVA程序又是在英文LINUX上运行的,那就出现了所谓的乱码问题了。也就是JAVA按英文的编码表ASCII来处理这两个数字,当通过new String({0xB5,0xB1})得到的String的时候,这个String代表的已经不是中文的“当”字,而是两个英文的奇怪字符了。不过如果你知道这两个数字一定是中文的话,就可以指定用new String({0xB5,0xB1},”GB2312″)来处理,这时候新建立的String才真的是一个“当”字。当然拉,如果你要把一个“当”字的JAVA的String显示在中文WIN98上,必须把这个字输出成两个8位数字:0xB5,0xB1,不管是写成文件还是输出到浏览器上,都必须是0xB5,0xB1。如何把“当”字用GB2312输出?String.getBytes(“GB2312″)就可以拉!所以有一点要记住:和外界交换任何信息都是以byte[]来进行的!。你可以留意一下JAVA大多数的I/O类,都有以byte[]作为参数和返回值的方法。不过,也有很多写的比较糊涂的程序,没有提供byte[]交换信息的方法,害的不同文字平台的程序员很头疼。Servlet的HttpRequest.getParameter()就是这样。好在有的JSP/SERVLET容易还提供先指定编码表的方法,才能比较简单的解决这个问题。 6. 网上关于JAVA中文问题的一些错误处理方法。 一个是最常见的,不管什么内容,都用new String(…,”ISO-8859-1”)来建立字符串,然后使用的时候按默认的编码格式(通常在服务器上都是英文系统)输出字符串。这样其实你使用的String并不是按UNICODE来代表真正的字符,而是强行把BYTE数组复制到String的char[]里,一旦你的运行环境改变,你就被迫要修改一大堆的代码。而且也无法在同一个字符串里处理几种不同编码的文字。 Read more…

出现javax.net.ssl.SSLProtocolException: handshake alert: unrecognized_name

今天研究网上的java版的微信模拟登录群发消息的代码时,运行报错handshake alert: unrecognized_name,调试发现完整的错误为javax.net.ssl.SSLProtocolException: handshake alert: unrecognized_name 在百度上发现有网友说是因为JDK的版本不对导致,笔者更换了jdk的版本发现问题依旧,最后看到另一个网友的解决方案 设置系统属性:System.setProperty (“jsse.enableSNIExtension”, “false”); 搞定。

易信公众帐号添加自定义菜单

首先我们设置菜单的内容 [code lang=”php”] $data = array( "button"=>array( array( "name"=>"点击测试", "sub_button"=>array( array( "name"=>"点击1", "type"=>"click", "key"=>"http://www.baidu.com", ), array( "name"=>"点击2", "type"=>"click", "key"=>"http://www.taobao.com", ) ), ), array( "name"=>"查看测试", "type"=>"view", "key"=>"help.php", ), array( "name"=>"查看yx", "type"=>"view", "key"=>",help.yx", ) ) ); [/code] 然后 [code lang=”php”]$url = "https://api.yixin.im/cgi-bin/menu/create?access_token=".$access_token; $jsondata = json_encode($data);[/code] $access_token为你的access_token 然后将$data的数据POST到$url就行了,根据返回码查看操作是否成功

采用Intel HAXM对模拟器进行加速

开个模拟器那叫一个慢啊,网上有用VMWare虚拟机加速的,懒得整; 直接用SDK自带的好了 注意:使用该方法,自己测试的4.1版本结果挺多程序运行不太正常(有时行,有时崩溃,如安卓市场,输入法则干脆一直不行),google自带的还成;网络过一会儿就不能用了,重启模拟器就又可以了;自己写的最基本程序没问题 官方教程:http://developer.android.com/tools/devices/emulator.html 只需要看Configuring Virtual Machine Acceleration  和  Configuring VM Acceleration on Windows两节即可 下面来看具体步骤: 1、下载所需的x86镜像及HAXM 打开SDK Manager.exe,按如下两张图下载所需的支持X86 image的Android版本及X86镜像,以及HAXM 2、安装HAXM 下载完成后到如下图所示位置安装HAXM,需要CPU支持虚拟化技术,有的可能需要在BIOS中打开,如我的ThinkPad E520 在BIOS 中的Security 下面。 验证安装: 命令行里输入sc query intelhaxm 看到状态里有RUNNING即可,如下图所示 管理HAXM: 引用 You can adjust the amount of memory available to the Intel HAXM kernel extension by re-running its installer. Read more…

修改Eclipse ADT default debug keystore路径

我用的是Windows7,而我又喜欢将所有可以设置的用户文件的位置改至F盘下。这样在用Eclipse或者从命令行创建Android Emulator时,相应的文件是被放置到 “F:/Users/<username>/.android“ 下面了,而程序运行时仍然从 “C:/Users/<username>/.android“ 下查找相应的配置文件,从而导致上面的错误。 好吧,又google了下,找到方法如下:       方案一: 把 “F:/Users/<username>/.android“ 下的文件复制到 “C:/Users/<username>/.android“ 下面即可解决这个问题,不过这样的解决方案有一个明显的缺点,那就是如果又新 建立AVD,又得重新复制。感觉很麻烦~~~       方案二: 打开系统属性–>环境变量—>在“系统变量”那一个GroupBox下面选择“新建”–>变量名为 “ANDROID_SDK_HOME” (注意,这个变量名不能改变,只能是这个名字!),然后 把变量值改为你想把AVD所在的”.android”文件夹放置的位置,比如:”F:/AndroidEmulator”,在这里我把它放在Android SDK包中,值为:”D:/SDK/Android/android-sdk-             windows-1.5_r3”,如下图所示。 当然 也可以更改成其它 的路径        设定成功的话 ,在eclipse里preferneces -> Android -> Bulid Setting里为如下结果:Default debug keystore: F:/Android_Emulator//.android/debug.keystore 然后这样就可以一劳永逸了!!! 然后我就新建了一个Android工程,开始了Hello World之旅~~~只要在文件中添加三行代码,如下所示: 1: TextView tv = new TextView(this); 2: tv.setText(“Hello World!!!”); 3: setContentView(tv); Read more…

Xperia M得到CyanogenMod的官方支持。

android系统最大的好处在于它能让OEM可以提供满足用户需求的设备。一款高端的旗舰手机并不能适合所有的用户,所以市场上存在中端和低端的产品。 Sony就是这样的厂商,其实是定位中低端的设备,依然做工精美。它的一款主打中低端市场的产品Xperia M的配置确实有点落伍,双核1G,Krait200的CPU,1GB的RAM和4G的机身内存。 FreeXperia是从FXP309开始得到CM官方支持的,这需要得益于XDA的高级会员PecanCM在该产品线和内核上的跟进。这一官方声明对FXP是个好消息,它将是2014年第一个(但绝不是最后一个)得到CM官方支持的机型。

用微信免费查工商银行余额

突然想到好多朋友估计还不知道,所以特将它写出来。 先关注”中国工商银行电子银行”的微信公众帐号. 建议不要按照第一条消息给的“XXYE#卡号或帐号”,而是点击菜单里面的“帐号服务”–“查询余额”,然后收到提示输入“#卡号或帐号”,自行输入自己的帐号 然后输入“#密码器动态密码”,有电子密保器的朋友就可以通过自己的密码器获取这6位数字,按要求回复即可,以后就可以直接用“查询余额”借口了。到时候大家就可以省掉开通工行的工行信使了,。节省掉每月的2元RMB.利用微信可以随时查询余额,但是有资金变动(工资到账,消费)的时候不会有提示,其实平时多查查余额也就行了,效果差不多,还不花钱哦。

sae-eclipse插件加新浪sae进行java项目开发

1.首先当然是下载eclipse和sae-eclipse插件喽,sae-eclipse的下载地址. 2.在eclipse新建一个Dynamic Web Project ,然后再在WebContet下新建一个.jsp文件,下面就以将NewFile.jsp上传到新浪sae为例作为讲解. ,右键菜单里面找到Sina App Engine Java下面的File Commit ,如上图,分别填上app名字,安全邮箱,安全密码,版本号.Operation下面有add和delete两个操作.默认的空操作应该算是update操作.