《Angular深度剖析与实践》笔记

  • 1.ng-model 默认可以用在所有元素,只是input/texarea/select这几个可以直接使用,因为angluar自带了对这几个元素的重写指令。其他的若想双向绑定,需要自定义指令
  • 2.ng-model可以只在html中定义,不需要在controller中定义,因为angluar有容错机制,会自动定义,在写模板时这会很有用。
  • 3.为什么用ng-submit对form,而不是对提交按钮做提交事件,因为有些用户可以在input中敲回车来提交,更重要的是,这样的html,其表意性更强。
  • 4.js跨域问题
  • 5.后端:一个基于Groovy的框架,叫做Grails
  • 6.$htttp和$resource的区别
 $http is for general purpose AJAX. In most cases this is what you’ll be using. With $http you’re going to be making GET, POST, DELETE type calls manually and processing the objects they return on your own.

$resource wraps $http for use in RESTful web API scenarios.
本质上功能都是一样的,都是基于XMLHttpRequest和服务器交互的服务。不同的是$resource是对$http更高层次的抽象,$resource依赖于$http,也就是说$resource是在$http的基础上开发的。
基本上你可以把$http等同于jQuery的$.ajax,和$.ajax类似,$http除了有$http方法为,也有快捷方法$http.get、$http.post、$http.put等快捷方法,还有$http(url)返回的是一个Promise。

$http通常用于和RESTful server-side交互,要求接口RESTful话,’$resource(url)’返回的不Promise,也是一个资源对象,你可以对一个资源对象进行get、query、save、delete等操作。
  • 7.表单验证器:
html5自带了表单验证,会显示内置的提示,但是这种提示会破坏UX设计的整体效果,所以要先把禁用掉。即:form中,设置 novalidate= “novalidate”

input的必填功能 required = “required” 或者 ng-required = “true”(可以在controller中控制)
required = {{ vm.required}}

这种写法是无效的,因为在angluar中,required一旦出现即为有效,不考虑后面的值。所以最好使用ng-required

  • 8.当有表单不符合要求时,提交按钮置灰,写法:ng-disabled = “form.$invaild”
    angular1.3以上有另外一种方式:ngModel.$validators
  • 9.angluar的date过滤器,以及i18n处理(date格式化后的语言处理),也可以自定义过滤器,如:一分钟前,一小时前。
  • 10.前后端分页,一般实际开发中,以2000条为限制,大于2000用后端分页,否则用前端。
  • 11.在table搜索时,ng-change中有一个serch方法,可以进行改写,达到效果:用户连续输入时不进行网络请求,直到输入停顿才做。这个做法可以直接使用第三方库:lodash的debounce
  • 12.折叠树的实现(写一个工具类服务,避免污染html和controller,同时使用过滤器方便操作,具体见书本48页)
  • 13.前端工具链:yeoman或者frontjet
  • 14.通过拦截器处理系统的错误或者用户错误,写入日志系统。

Written by

说点什么

欢迎讨论

avatar

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

  Subscribe  
提醒