今天和同事一起讨论了一下AngularJS MVC的思想,先不看AngularJS MVC的思想,看看我们传统的MVC的思想(Struts2, SpringMVC).
V:表示视图,如JSP,html等;
C:表示控制器,接受用户的请求,调用service层的方法,进而调用DAO层来获取数据,最终返回到指定的视图中;
M:其实也是一个抽象的概念,可以理解成service层+DAO层。
页面处理的流程大概是这样的:
1)绑定相应的DOM元素;
2)相应的事件触发Ajax请求,控制器接收请求后返回;
3)更新DOM元素。
以上的流程,我想大家都会明白,现在说说AngularJS MVC的思想。
其实这里涉及到一个url路由的概念,它主要有下面的属性:
1. status:标识状态,如login,register,这个主要用在页面或者controller的跳转,都是以这个为唯一标识的;
2. url:页面地址栏显示的url;
3. templateurl:AngularJS是单页应用,其实入口有一个ng-view,不管页面是什么,最终都会填充到里来,非常类似ajax,之前的ajax传输的是部分数据,现在是局部页面的替换,而且有缓存,加速访问,templateurl对应的页面只有最基本的信息,动态的信息由controller来完成;
4. controller:通过http service来向后台获取数据,然后通过双向绑定来更新页面。
所以基本的流程是这样的:
1. 地址栏url对应templateurl;
2. templateurl加载基本的信息;
3. 动态信息由controller来加载;
4. controller调用service,返回数据后通过scope进行双向绑定更新页面数据。
V:表示视图,如JSP,html等;
C:表示控制器,接受用户的请求,调用service层的方法,进而调用DAO层来获取数据,最终返回到指定的视图中;
M:其实也是一个抽象的概念,可以理解成service层+DAO层。
页面处理的流程大概是这样的:
1)绑定相应的DOM元素;
2)相应的事件触发Ajax请求,控制器接收请求后返回;
3)更新DOM元素。
以上的流程,我想大家都会明白,现在说说AngularJS MVC的思想。
其实这里涉及到一个url路由的概念,它主要有下面的属性:
1. status:标识状态,如login,register,这个主要用在页面或者controller的跳转,都是以这个为唯一标识的;
2. url:页面地址栏显示的url;
3. templateurl:AngularJS是单页应用,其实入口有一个ng-view,不管页面是什么,最终都会填充到里来,非常类似ajax,之前的ajax传输的是部分数据,现在是局部页面的替换,而且有缓存,加速访问,templateurl对应的页面只有最基本的信息,动态的信息由controller来完成;
4. controller:通过http service来向后台获取数据,然后通过双向绑定来更新页面。
所以基本的流程是这样的:
1. 地址栏url对应templateurl;
2. templateurl加载基本的信息;
3. 动态信息由controller来加载;
4. controller调用service,返回数据后通过scope进行双向绑定更新页面数据。