angular 系列七 ui-router路由控制器介绍

angularUI 在不断发展过程中已经被划分成了几个模块,你可以选择你需要的模块载入,我们今天要了解一下路由控制器 ui-router ,它就是angularUI划分出出来的一个独立模块.此模块只关注状态,在整个用户界面导航中,一个状态对应一个视图,开发者可以根据URL状态来组织控制界面UI渲染.这里和后端开发有一点点区别需要注意:后端: 以node.js使用express框架的web开发为例,当我们定位一个路由,对应的会去服务端请求相应资源,服务器端接收请求,解析路由,然后做一系列逻辑处理,最后指定一个视图返回客户端.url —> 路由 —> 逻辑处理 —> 替换视图 —

angular 系列六 Module类的介绍及模块化依赖

上一篇博客我们已经简单的在index.html 实现了一个控制器代码.后面的学习我们会遵循一个控制器管理一个视图,一个路由对应一个视图的单一原则,所以再不会将controller控制器代码直接写到 index.html 中.我们会应用到angular.js中强大的模块来开发,比如路由,服务,过滤器,指令等模块.所以这一篇博客很有必要把各个模块之间的依赖关系,定义,使用等问题陈述一下.那么angular.js 到底是如何加载启动起来的呢.<!DOCTYPEhtml> <htmlng-app="YIJIEBUYI"> <head> <s

angular 系列五 控制器controller的作用

我们在上一篇angular.js输出hello world .我们在view中给模型的一个参数name赋值 “hello world” .这是一种简单的赋值,我们可以在视图中通过 ng 指令(以ng-开头的指令)实现了简单的赋值,如果遇到复杂的逻辑运算操作,那么视图里是无法执行复杂操作的,这时控制器就派上用场了.简单讲:控制器 controller 就是实现视图和模型之间数据传递,方法调用,改变模型等一系列操作,他是javascript函数(也可以看做类或者类型)控制器有几点需要注意的地方:1.一个控制器最好只包含一个视图的业务逻辑.以后你会看到我们的目录结构Client/scripts/co

angular 系列四 初识angular.js hello world!

上一篇我们搭建了一个前端 angular.js 后端 node.js服务器的单页面应用,虽然目前服务端只有一个启动文件,但是后面的系列涉及到服务器端交互的时候会逐渐补充.我们整个系列的学习会去写一个简单blog雏形,如果有精力再完善美化.但是这篇还是要从HelloWorld开始学习.angular.js 文件加载我们选用 bootstrap中文网提供的一个cdn服务.http://www.bootcdn.cn/我们找到 1.3.8的angular.js cdn地址,引用到页面 index.html中http://cdn.bootcss.com/angular.js/1.3.8/angular.

angular 系列三 gulp 代码构建工具简介

为什么要把 gulp 的学习文章安装到这里,因为我们上一篇说到了创建一个angular.js项目框架,其中用 gulp 来构建代码.什么是 gulp ,我之前的博客介绍过 yoman项目构建工具 ,gulp 也是类似这样的工具,而且感觉比 yoman和 grunt等工具使用更加简单方便.我们在项目中使用 gulp 做什么?我们会用 gulp 定制几个任务,其中一个就是把controller中的控制器代码抽取出来,然后生成一个新的 app.js .这样的好处是不言而喻的,比如一个团队每个人负责几个控制器,如果我们不用项目管理工具来自动合并引用到文件的话,我们只能手动每个人去修改 index.ht

angular 系列二 搭框架-node.js后端,angular.js前端

angular.js学习系列为后续的学习,我们需要搭一个 angular.js 学习环境.服务器端 api 使用 node.js 提供客户端由 angular.js 来负责.然后整个框架中使用 glup 代码构建工具来处理一些任务,关于 glup 的使用会单独开一篇博客.参考上图,下面有文档描述说明,几个* 表示几级目录*Client 文件夹下都是前端部分. **index.html — 站点启动页面,如果你把angular.js理解成一个单页面应用,它就是那个单独的页面 **images — 放置图片**styles—放置样式**templates —放置视图模板**vender—放置

angular 系列一 简单介绍及准备工作

目录:angular.js 系列一之准备工作angular 系列二 搭框架-node.js后端,angular.js前端angular 系列三 gulp 代码构建工具简介angular 系列四 初识angular.js hello world!angular 系列五 控制器controller的作用angular 系列六 Module类的介绍及模块化依赖angular 系列七 ui-router路由控制器介绍angular 系列八 ui-router详细介绍及ngRoute工具区别angular 系列九 ui-router适配模板,模板指定controller控制器angular 系列十 使用

随笔 - 2015年春节前夕

疯狂的年末又一次来袭,各种需求,赶工,加班,好像春节后要进入世界末日了.所以这几天连更新blog的时间都很紧,当然也是借口,我完全可以不睡觉去写一篇嘛,哈哈...原本打算把cordova 生成android 和 ios webApp写一下,可惜手头的工作打断了.之前的博文大部分是随笔,想到哪写到哪,所以也没有留住固定的读者,至今每日新访客占到90%左右.其实这样并不好,大家就好比匆匆过客,突然尿急,前面隐约看到一个"公厕" ,然后痛痛快快"上"完,当然大部分临走的时候还是"冲"了一下,哈哈.所以.我是不是该把一个系列从"He

moment .js - 不依赖任何三方库的时间日期格式化工具类

moment.js不依赖任何第三方库,支持字符串、Date、时间戳以及数组等格式,可以像PHP的date()函数一样,格式化日期时间,计算相对时间,获取特定时间后的日期时间等等,本文有如下举例。直接见代码:当前时间:moment().format('YYYY-MM-DD HH:mm:ss');2015-01-19 19:11:11今天是星期几:moment().format('d');1Unix时间戳:moment().format('X');1421665871相对时间:moment("20130101", "YY

webstorm 快键键分享

webstorm window系统下快捷键分享, mac下 ctrl 对应 command 键, alt 对应 option 键Ctrl+/ 或 Ctrl+Shift+/ 注释(// 或者/*…*/ )Shift+F6 重构-重命名Ctrl+X 删除行Ctrl+D 复制行Ctrl+G 查找行Ctrl+Shift+Up/Down 代码向上/下移动。F2 或Shift+F2 高亮错误或警告快速定位写代码,按Tab 生成代码选中文本,按Ctrl+Shift+F7 高亮显示所有该文本,按Esc高亮消失。(因为这个功能我就可以发放心的放弃sublime了)Ctrl+B或Ctrl+鼠标左键单击 快速打开光

mac os开发android应用通过usb真机调试

当前开发用的ari,sublime + webstrom 开发node.js还比较流畅,还没有出现被堵被坑的局面.尝试开发android应用时,各种坑,其中一个比较深的坑就是今天要和大家分享的.mac OS如何真机调试android应用.但凡接触过android开发的,都对他的模拟器有挥之不去的阴影,不明真相的童鞋可以玩一把模拟器,包你爽!我在上上一篇博文关于node.js生成android和ios应用里用xcode编译然后模拟器截图,结尾还写到,安卓模拟器的截图以后奉上.因为android的环境,依赖等一切问题已经影响到了我的食欲,直到今天终于调试成功一把,可惜是在真机,android模拟器

node.js 代码实现301跳转

之前专门有一篇博客介绍 nginx 设置不带www域名跳转带www域名上为什么要这要做,可以从上面的博客得知原因.后来还有一篇是介绍关于主域在搜索引擎中权重更高 ,所以博客经过一段时间不带www域名跳转带www域名后,又相反的从带www跳转到不带www域名,只是因为主域权重更高,不想分流而已.再后来还做了一件事,就是伪静态化,所以在我的博客就算翻页你也会看到url 是这样的 http://yijiebuyi.com/2.html 但是会出现一个问题,之前被搜索引擎收录的url跳转过来服务器找不到自然会报错.所以博客的路由做了调整,兼容之前的老路由,同时支持新路由.这样又导致一个问题,就是一篇博

mac环境下node.js和phonegap/cordova创建ios和android应用

引用百度百科的一段描述:PhoneGap是一个用基于HTML,CSS和JavaScript的,创建移动跨平台移动应用程序的快速开发平台。它使开发者能够利用iPhone,Android,Palm,Symbian,WP7,WP8,Bada和Blackberry智能手机的核心功能——包括地理定位,加速器,联系人,声音和振动等,此外PhoneGap拥有丰富的插件,可以调用. 查看更多使用前提:已经安装xcode已经安装python 2.7 (3.0一下版本)已经安装node 0.10.*(本环境是 0.10.28)上面的安装方法你可以在本博客搜索cordova和phonegap是什么关系?PhoneG

Mac OSX 添加环境变量的三种方法

Mac添加环境变量的三种方法,之前有一篇关于mac $path加载环境变量的3种配置文件(一)sudo nano /etc/paths来编辑 paths,将环境变量添加到 paths 中。nano 是一个编辑器,另外还有几个,如:Pico,Emacs。(二)1.创建一个文件:sudo touch /etc/paths.d/mysql2.sudo nano /etc/paths.d/mysql3.编辑该文件,键入路径并保存(关闭该 Terminal 窗口并重新打开一个,就能使用 mysql 命令了)/usr/local/mysql/bin据说,这样可以自己生成新的文件,不用把变量全都放到 pat

/usr 目录结构

/usr 是linux系统核心所在,包含了所有的共享文件。它是 unix 系统中最重要的目录之一,涵盖了二进制文件,各种文档,各种头文件,x,还有各种库文件;还有诸多程序,例如 ftp,telnet 等等。曾经的 /usr 还是用户的家目录,存放着各种用户文件 —— 现在已经被 /home 取代了(例如 /usr/someone 已经改为 /home/someone)。现代的 /usr 只专门存放各种程序和数据,用户目录已经转移。虽然 /usr 名称未改,不过其含义已经从“用户目录”变成了“unix 系统资源”目录。值得注意的是,在一些 unix 系统上,仍然把 /usr/someone 当做

Mac OS X 10.10 brew报错 bad interpreter: No such file or directory

今天尝试用brew 安装bzr ,结果悲剧的是直接报错!zhangzhi@moke:~$brewinstallbzr /usr/local/bin/brew:/usr/local/Library/brew.rb:/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby:badinterpreter:Nosuchfileordirectory /usr/local/bin/brew:line26:/usr/local/Library/brew.rb:Undefinederror:0网上找一下,原来是 MAC OSX 1

git reset revert 回退回滚取消提交返回上一版本

总有一天你会遇到下面的问题.(1)改完代码匆忙提交,上线发现有问题,怎么办? 赶紧回滚.(2)改完代码测试也没有问题,但是上线发现你的修改影响了之前运行正常的代码报错,必须回滚.这些开发中很常见的问题,所以git的取消提交,回退甚至返回上一版本都是特别重要的.大致分为下面2种情况:1.没有push这种情况发生在你的本地代码仓库,可能你add ,commit 以后发现代码有点问题,准备取消提交,用到下面命令reset gitreset[--soft|--mixed|--hard上面常见三种类型--mixed会保留源码,只是将git commit和index 信息回退到了某个版本.gitreset

git 本地仓库和远程仓库及本地分支和远程分支简介

之前一篇关于 git简易使用笔记 点击查看,今天的内容就是作为一个补充,主要说一下git 操作本地仓库/远程仓库及本地分支和远程分支.从远程git仓库签出代码: $ git clone git://aaa.com/git_project.git (远程git服务器项目所在地址)当你需要克隆远程项目到本地时,默认会把项目保存在名为 git_project 文件夹下面.你也可以指定本地的一个空文件夹cccgit clone git://aaa.com/git_project.git ccc$ git remote -v查看远程仓库$ git remote add [远程仓库名] [远程git服务

greenvpn高速免费vpn 200M流量试用

其实我不上一个重度vpn依赖者,但是毕竟每个人都有追求美好事物的权利,所以一些优秀服务我还是必须穿墙而过,绝大部分技术宅应该使用过goagent免费服务,其实直到今天我依然眷恋此服务,甚至花了半天的时间去找一种让它100%满血满状态复活的方法,结果还是徒劳.我试了网上说的各种方法,最后控制台开到的还是一片黄.....可以说命中率很低,偶尔能打开gogole帐号,但是大部分站点是等待中死亡,如果你有好方法不妨告诉我,右边有我的联系方式,多谢!也正是不断的失望,再失望.所以打算暂时放弃goagent,花点银子解决吧,这就出现了今天要说的greenVPN.这种本来也不算偷鸡摸狗的事情确不能在自己博客

node.js 下依赖Express 实现post 4种方式提交参数

上面这个图好有意思啊,哈哈, v8威武啊....在2014年的最后一天和大家分享关于node.js 如何提交4种格式的post数据.上上一篇说到了关于http协议里定义的4种常见数据的post方法,详细介绍请点击查看.分别是这四种:www-form-urlencoded,form-data,application/json,text/xmlExpress 依赖 bodyParser 对请求的包体进行解析,默认支持:application/json, application/x-www-form-urlencoded, multipart/form-data.可惜对xml没有支持,需要自己代码来

node.js AES/ECB/PKCS5Padding 与其他语言的加密解密通用

关于什么是AES? 需要自己goole了解一下,今天就是简单和大家分享node.js下使用AES/ECB/PKCS5Padding 如何与其他语言通用加密解密.就像你的接口是node.js提供服务,而第三方平台是其他服务器端语言开发,比如php ,在第三方平台请求你的接口可能需要sign验证,假设我们使用了AES/ECB/PKCS5Padding 加密.AES/ECB/PKCS5Padding 斜线分隔的3部分分别是 算法/模式/填充量AES加密包括不同的模式,已经后面是否有填充量(为什么有填充量,就像我们引用的图片,一个AES块是16个字节,如果不满16的时候要不要填充?)算法/模式/填充

[转]四种常见的 POST 提交数据方式

HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 这几种。其中 POST 一般用来向服务端提交数据,本文主要讨论 POST 提交数据的几种方式。我们知道,HTTP 协议是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范。规范把 HTTP 请求分为三个部分:状态行、请求头、消息主体。类似于下面这样:<method> <request-url> <version><headers><entity-body></entit

node.js里面的全局变量

在node.js开发中,你一定用到过 console 类来打印一些东西或者debug.但是你在使用console类之前一定没有require 相关的包.有的人会说,console 是node.js核心自带模块,不需要require ,错了,这里容易理解错.核心代码库是你安装node.js时已经包含了并编译了此模块.核心模块定义在node源代码的lib/目录下.但是用的时候还是要require 一下.比如上一篇博文提到的node.js里querystring类的使用,这个就是核心代码库自带的,但是你用的时候还是要require('querystring');而我们常常拿来直接就用

node.js querystring类介绍

从名字就可以看出是一个和参数相关的帮助类,node.js原生自带,直接 require('querystring') 即可使用.此类一共包括4个方法:querystring.stringify(obj, [sep], [eq])querystring.parse(str, [sep], [eq], [options])querystring.escape querystring.unescape [内参数]表示可选参数, [sep]指分隔符 默认& , [eq]指分配符 默认=下面一个一个来介绍:一:querystring.stringify(obj,[sep],[e

关于node.js 验证 Oauth1.0 接口

下面的node.js调用Oauth接口并不是针对 腾讯开放平台.....具体不同的服务商可能在 oauth 基础上添砖加瓦,还要考虑具体的业务需求.相比Oauth2.0来说,Oauth1.0真的很繁琐......但是实际应用中碰到这个问题只能去解决,而不可能给对方打电话说,你赶紧把Oauth协议升级到2.0吧,1.0太繁琐,你想想将会发生什么事情 $#(+)&*@!!常常涉及到三方:Service Provider:服务提供者(如 腾讯,只是假设)Consumer:消费⽅,外部第三⽅方平台(如 一介布衣)User:用户 (登录用户)当然我的博客不是多用户博客,只是举例.前提条件:在服务

漫谈javascript 单线程异步io回调的特性

javascript经过浏览器大战的几次更新换代,终于一统江湖,稳坐第一把交椅,经过你会发现javascript语法和实现并不尽人意,但是丝毫不影响它的发展.我们最开始接触javascript应该大部分是从html中的js脚本开始,但是这种看似简单的语言稀里糊涂的用了好几年,也没有搞清楚它的一些原理机制,有没有躺枪!起码javascript在操作dom的时候用了各种事件回调,比如按钮,链接的点击,鼠标经过,获取焦点等等.在这个过程中,我们在dom上绑定一个事件回调函数 比如 onclick="doCheck()" 这个过程就是给dom元素注册了一个click 事件,并且绑定

async和eventproxy在流程控制上哪个更优秀

由于node.js特性异步IO,导致 node.js 开发常常让你头疼的是异步嵌套回调.一层一层的大括号嵌套让你当场就迷失在回调函数中,更不用说隔一段时间自己去维护这段代码的时候,恨不能砸显示器来泄愤.不过这个世界还是美好的,你遇到的问题大家也都遇到了,而且大牛们致力于减轻码农的各种node.js 的痛苦,开发出了高效好用的流程控制包,让你的逻辑变的清晰,维护起来一目了然.常用的有 async ,step ,eventproxystep本人接触很少,一直在用async,也是最近注意到了 eventproxy ,我想看看哪个性能更优,代码更加优雅,所以有了下面一个小demo.这个demo不去比较

友情链接做手脚 - 这里面水还挺深

这个世界总需要一些人来制定规则,然后另外一些人想办法去破坏规则,当然这部分人会受到一定惩罚.比较圆滑的一部分是钻规则的空子.就像出现搜索引擎以后,自然就出现了seo这个职业,人们就在使用各种各样的手段.所以搜索引擎定义了 白帽,黑帽及灰帽 .白帽是按照搜索引擎中规中矩去优化.黑帽是走捷径,seo作弊.灰帽就类似上面转空子的那拨人.这里面的水好深哦.今天就简单说下常常遇到的 友情链接交换.互联网也是一张网,所以我们把搜索引擎去收录页面的自动化程序比作蜘蛛,蜘蛛在网上爬来爬去,从A节点到B节点需要一条蛛丝相连,而互联网之间的相连全靠链接,就是 a 标签.链接在互联网世界中非常重要,搜索引擎的好多算

request 模拟post提交表单

node.js环境下,利用request 模拟post提交表单 需要 formstream 插件配合使用.npminstallrequestformstreamvarrequest=require('request') ,FormStream=require('formstream') var form = FormStream()   .field('name', '一介布衣')   .file('head_image', '100x100.png') var upload = request.post('http://yijiebuyi.com/page',

修改阿里云ssh默认22端口

站长都应该有服务器安全意识,虽然很少有人会盯上我这个小博客,但是害人之心不可有,防人之心不可无.如果遇到个好奇心很重的访客,他会试探你服务器上的端口.而我们常常使用的ssh 默认端口是22,一般站长修改的不多.也难免会有人想去暴力破解下密码.所以为了保护自己,我们可以修改ssh默认端口,提高被攻击的门槛.今天我就是要把阿里云vps默认ssh端口改掉.ssh的配置信息存放在这里 /etc/ssh/sshd_confignano/etc/ssh/sshd_config打开配置文件,你会密密麻麻看到罗列好处好多配置项,现在需要把鼠标移动到10-20行之间,找到 #Port 22这个注释是提示你当前s

回到顶部