摘要: 任何一个完备的前段框架可能都不会漏掉表单验证这一块,angular也不例外。有些奇怪的是,angular的验证是通过html标签的attribute来实现的,换句话说,数据的验证规则是写在View上的。这多少有些奇怪,毕竟验证规则怎么想都应该是业务逻辑的一部分才对。更奇怪的是有验证规则时的数据绑定——View只会把合法的数据写到scope上去,不合规则的数据直接就被angular忽略了。这就带来了问题,因为不合法的数据也会是有价值的。比如说有不合法的数据则不能提交。这个还好说,给按钮加个ngDisabled:提交如果用户名不合法,那么ngClick就不会被触发。不过这种的话验证逻辑就完全交给V 阅读全文
posted @ 2014-03-04 22:59 Narcissu5 阅读(639) 评论(0) 推荐(0) 编辑
摘要: angular中的各种关于事件处理的directive。比如ngClick,ngKeydown,都是在ngEventDirs.js定义的,打开看一下,400多行的源文件,实际代码只有这20行:var ngEventDirectives = {};forEach( 'click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste'.split(' ') 阅读全文
posted @ 2013-12-28 00:06 Narcissu5 阅读(498) 评论(0) 推荐(0) 编辑
摘要: 使用本地的缓存NuGet一个很麻烦地方的在于它只有一组位于Radmond的服务器,而且这组服务器经常连不上。很奇怪为什么微软不开放镜像。如果已经安装了某个Package,只是想给另外的项目也装上的话,可以使用本地缓存。本地缓存的地址C:\Users\\AppData\Local\NuGet\Cache,使用方法也非常简单,新建一个站点,把这个地址填进去就OK。另外需要禁用官方站点,NuGet在连接远程服务器失败时候不会尝试其它的站点——又是一个奇怪的地方。另外,VS还有一套在线模板,可以创建私有的NuGet站点。公司内用应该还不错。使用http连接仔细查看NuGet的默认官方站点会发现它使用的 阅读全文
posted @ 2013-12-27 01:59 Narcissu5 阅读(1841) 评论(1) 推荐(0) 编辑
摘要: Prism 和 Angularjs 的比较MV*angular 声称自己是MVC,其实HTML的前端领域,各种MV*里面,很难找到典型意义上的Controller。在服务器端,Controller的定位是很明确的,就是接受http request,进行相应的调度。但是在前段领域,情况要复杂得多。前端没有http request那么明确的入口点,处理基本上是MouseMove之类的界面事件。Controller在此处比较无力。Prism使用的是Silverlight/WPF仅此一家的MVVM模式——至少目前为止,我还没有看到比较给力的克隆。MVVM的核心就在于无比给力的绑定引擎,这是运行时提供的 阅读全文
posted @ 2013-12-26 22:38 Narcissu5 阅读(460) 评论(0) 推荐(0) 编辑