当前位置: 首页 > news >正文

angular

http://docs.ngnice.com/guide/     
http://angularjs-doc.qiniudn.com/docs/api 英语镜像
 
它的创新之处在于,通过数据绑定和依赖注入减少了大量代码,而这些都在浏览器端通过JavaScript实现,能够和任何服务器端技术完美结合。
 

1、双向数据绑定,视图和数据模型绑定

 
2、所有的属性的解析都是相对于作用域(scope)
 
解析一个Angular表达式,使用$eval(expr)方法,表达式中不允许包括下列语句:条件判断(if),循环(for/while),抛出异常(throw)
 
如果指定了模块 ng-app="app" 那么需要angular.module("app", []).controller("someCntl", function() {});
<html  ng-app="app">
     <div ng-controller="someCntl"></div>
</html>
 
 
angular.module('myModule', []).config(function(injectables) {}).run(function(injectables) {});
run方法当模块注入(injector )以后触发,只有实例和常量(instances and constants)可以注入到run里,为了防止将来程序运行的时候配置系统
config在(provider registrations and configuration phase)时运行,只有(providers and constants)可以注入到config里,这是为了防止服务在完全配置好之前安装出现意外
 
在angular里,view是module通过HTML 模板映射出的效果,当model改变的时候,angular也会刷新view
 
.state('app', {
    url: "/app",                导航或转换到时,会被传递的参数
    abstract: true,            抽象的状态永远不会被激活,但是可以提供属性以被其子状态继承
    templateUrl: "templates/menu.html",
    controller: 'AppCtrl',
    views: {                   使用视图属性来设置多个视图。如果你没有在一个state内需要多个视图这个属性是没有必要的。提示:请记住,通常嵌套的视图比平级的视图更加有用和强大。
      'menuContent': {
        templateUrl: "templates/browse.html"
      }
    }
  })
 
测试:
如果controller是全局的,那么就可以虚拟出一个scope实例对象:
describe('PhoneListCtrl', function(){
  it('should create "phones" model with 3 phones', function() {
    var scope = {},
           ctrl = new PhoneListCtrl(scope);
    expect(scope.phones.length).toBe(3);
  });
});
如果控制器不是全局的话:
describe('PhoneListCtrl', function(){
  beforeEach(module('phonecatApp'));
  it('should create "phones" model with 3 phones', inject(function($controller) {
    var scope = {},
          ctrl = $controller('PhoneListCtrl', {$scope:scope});
    expect(scope.phones.length).toBe(3);
  }));
});
 
和服务器通信使用$http,它是基于deferred/promise APIs
 
then处理异步请求,按照顺序依次处理多个异步请求。是一个promise,等结果出来再根据结果执行
$cordovaGeolocation .getCurrentPosition(posOptions) .then(function (position) {   //done     }, function(err) { // error });
 

转载于:https://www.cnblogs.com/chuangweili/p/5167990.html

相关文章:

  • Oracle使用总结
  • 通过keepalived实现 MySQL VIP 自动切换
  • Swift - 37 - 值类型和引用类型的简单理解
  • 算法导论 第六章 2 优先队列(python)
  • gdb跟踪应用程序原理浅析
  • ORACLE 11G内存管理方式
  • 正则表达式总结
  • Cocos2d-js使用ETC1格式的图片
  • 2015年年终总结
  • Java实现多线程邮件发送
  • [算法]需要排序的最短子数组长度
  • 面向对象编程(十四)——面向对象三大特性之多态①
  • 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。...
  • java设计模式之——适配器模式
  • 工具-常用工具
  • [ JavaScript ] 数据结构与算法 —— 链表
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • ➹使用webpack配置多页面应用(MPA)
  • Bytom交易说明(账户管理模式)
  • Docker 笔记(2):Dockerfile
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • input的行数自动增减
  • Java 内存分配及垃圾回收机制初探
  • JavaScript 基础知识 - 入门篇(一)
  • Linux CTF 逆向入门
  • node和express搭建代理服务器(源码)
  • PAT A1120
  • React Transition Group -- Transition 组件
  • Redis字符串类型内部编码剖析
  • 大快搜索数据爬虫技术实例安装教学篇
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 记录:CentOS7.2配置LNMP环境记录
  • 警报:线上事故之CountDownLatch的威力
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 如何实现 font-size 的响应式
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 协程
  • 一个JAVA程序员成长之路分享
  • C# - 为值类型重定义相等性
  • 湖北分布式智能数据采集方法有哪些?
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • ​香农与信息论三大定律
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • (3)(3.5) 遥测无线电区域条例
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (javascript)再说document.body.scrollTop的使用问题
  • (NSDate) 时间 (time )比较
  • (Oracle)SQL优化技巧(一):分页查询
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (三)elasticsearch 源码之启动流程分析
  • (原)Matlab的svmtrain和svmclassify