一、Angular中是怎么实现数据双向绑定的?
Angular实现了双向绑定机制。所谓的双向绑定,无非是从界面的操作能实时反映到数据,数据的变更能实时展现到界面。即数据模型(Module)和视图(View)之间的双向绑定。长检查机制。双向数据绑定是AngularJS的核心机制之一。当view中有任何数据变化时,会更新到model,当model中数据有变化时,view也会同步更新,显然,这需要一个监控。原理就是,Angular在scope模型上设置了一个监听队列,用来监听数据变化并更新view。每次绑定一个东西到view上时AngularJS就会往$watch队列里插入一条$watch,用来检测它监视的model里是否有变化的东西。当浏览器接收到可以被angularcontext处理的事件时,$digest循环就会触发,遍历所有的$watch,最后更新dom。
二、angular中$rootScope和scope有什么区别?
scope是html和单个controller之间的桥梁,数据绑定就靠他了。rootscope是各个controller中scope的桥梁。用rootscope定义的值,可以在各个controller中使用。
三、RequireJS和seaJs的区别
相同之处RequireJS和SeaJS都是模块加载器,倡导的是一种模块化开发理念,核心价值是让JavaScript的模块化开发变得更简单自然。不同之处两者的区别如下:
1、定位有差异。RequireJS想成为浏览器端的模块加载器,同时也想成为Rhino/Node等环境的模块加载器。SeaJS则专注于Web浏览器端,同时通过Node扩展的方式可以很方便跑在Node服务器端
2、遵循的规范不同。RequireJS遵循的是AMD(异步模块定义)规范,SeaJS遵循的是CMD(通用模块定义)规范。规范的不同,导致了两者API的不同。SeaJS更简洁优雅,更贴近CommonJSModules/1.1和NodeModules规范
3、社区理念有差异。RequireJS在尝试让第三方类库修改自身来支持RequireJS,目前只有少数社区采纳。SeaJS不强推,采用自主封装的方式来“海纳百川”,目前已有较成熟的封装策略
4、代码质量有差异。RequireJS是没有明显的bug,SeaJS是明显没有bug
5、对调试等的支持有差异。SeaJS通过插件,可以实现Fiddler中自动映射的功能,还可以实现自动