Chinaunix首页 | 论坛 | 博客
  • 博客访问: 329890
  • 博文数量: 130
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 554
  • 用 户 组: 普通用户
  • 注册时间: 2012-07-19 19:24
文章分类

全部博文(130)

文章存档

2016年(31)

2015年(16)

2014年(13)

2013年(70)

分类: Android平台

2016-01-20 14:58:27

angularjs中的Controller Service Template之间的
调用关系:
.controller('abc', function() {});
会在当前上下午中创建一个变量abc指向后面的function object.
这个变量可以用于后面Template模板内的{{abc.index}}指令实现
内容替换
.controller('abc', ['bb',function(bb) {}]);
除了上面的创建abc指向function对象外,还将根据'bb'名称去
查找相关的对象,实例化后当做后面function的实参传递个给函数,
这里'bb'主要是service通过.factory指令实例化的对象,
主要用于与服务器端的ajax交换数据,供controller的函数逻辑处理

DATA Binding:
MVC 编程模式中, M 用于调用提供数据与view的render 然后
在显示在设备屏幕,如果其中任何一个变化,都有从新render才能
看见相应的变化,但是angularjs中,data binding 模式与传统的
不一样,只要其中一方改变,framwork都会自动reflect到对应的模块
不需要手动重新render view

Scopes:
View 中的变量(类似{{username}}),都是记录到Scopes对象的
属性中,angularjs app有一个root scope, 但是一些指令会创建
一个scope 并attach到对应的element上,并继承它parent element
的scope属性与方法

angularjs HTML compile 如下步骤:
1. $compile 遍历所有的html element, 查找是否有match的
指令命中,如果有,就会把相关的指令添加到element的指令链内
2. 通过priority排序element 指令链中的指令,然后执行指令的compile function
这时候,每个指令都可以修改element的属性等,element的compile 
function 会返回一个link function, 
3. link function 会在$scope的上下文下render temp view
注册时间监听,$WATCH 变量变化等回调function
var $compile = ...; // injected into your code
var scope = ...;
var parent = ...; // DOM element where the compiled template can be appended

var html = '
';

// Step 1: parse HTML into DOM element
var template = angular.element(html);

// Step 2: compile the template
var linkFn = $compile(template);

// Step 3: link the compiled template with the scope.
var element = linkFn(scope);

// Step 4: Append to DOM (optional)
parent.appendChild(element);

anguarljs frame 中实现了DI接入技术
在client端尽量不要hard-code service端的引用
而是通过一个inject 方式把service 传递给client
具体方式有通过construction 构造方式传入service
通过setattar 方式传入service
通过interface 方式传入service
具体见wikipedia Dependency injection描述
阅读(757) | 评论(0) | 转发(0) |
0

上一篇:GPU Introduce

下一篇:常见算法的时间复杂度

给主人留下些什么吧!~~